Verify the from email address is set to a valid value
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
e853442468
commit
35fe66e615
@ -149,8 +149,21 @@ def load(default, user=None):
|
||||
logger.info("Your `session-key` has been stored in the "
|
||||
"database itself, this option is now unused")
|
||||
|
||||
if not parseaddr(parser.get("smtp", "from"))[0]:
|
||||
parser.set("smtp", "from",
|
||||
formataddr(("Ich schrei sonst!", parser.get("smtp", "from"))))
|
||||
from_address = parser.get("smtp", "from").strip()
|
||||
|
||||
if from_address != '' and parseaddr(from_address) == (None, None):
|
||||
if '@' not in from_address:
|
||||
logger.warn("Your `from` address doesn't contain an @ sign. "
|
||||
"It is reset to an empty address.")
|
||||
parser.set("smtp", "from", "")
|
||||
|
||||
elif ' ' in from_address:
|
||||
logger.warn("Your `from` address contains a space. "
|
||||
"It is reset to an empty address.")
|
||||
parser.set("smtp", "from", "")
|
||||
|
||||
else:
|
||||
parser.set("smtp", "from",
|
||||
formataddr(("Ich schrei sonst!", from_address)))
|
||||
|
||||
return parser
|
||||
|
@ -30,3 +30,24 @@ class TestConfig(unittest.TestCase):
|
||||
self.assertEqual(parser.getlist("foo", "spam"), ['a', 'b', 'cdef'])
|
||||
self.assertEqual(list(parser.getiter("foo", "bla")), ['spam', 'ham'])
|
||||
self.assertEqual(list(parser.getiter("foo", "asd")), ['fgh'])
|
||||
|
||||
def test_smtp(self):
|
||||
|
||||
cases = [
|
||||
('"abc" <def@example.org>', '"abc" <def@example.org>'),
|
||||
('abc <def@example.org>', 'abc <def@example.org>'),
|
||||
('"abc def" <def@example.org>', '"abc def" <def@example.org>'),
|
||||
('abc def <def@example.org>', 'abc def <def@example.org>'),
|
||||
('def@example.org', 'Ich schrei sonst! <def@example.org>'),
|
||||
('"abc" def@example.org', ''),
|
||||
('"abc"', ''),
|
||||
('abc', ''),
|
||||
]
|
||||
|
||||
for (config_value, expected) in cases:
|
||||
parser = config.IssoParser(allow_no_value=True)
|
||||
parser.read_file(io.StringIO(u"""
|
||||
[smtp]
|
||||
from = """ + config_value))
|
||||
|
||||
self.assertEqual(parser.get("smtp", "from"), expected)
|
||||
|
Loading…
Reference in New Issue
Block a user