mirror of
https://github.com/simple-login/app.git
synced 2024-11-16 08:58:30 +01:00
handle the case email from header has the format "First Last <ab@cd.com>"
This commit is contained in:
parent
cf572bcd5b
commit
8d60ebd456
2 changed files with 20 additions and 2 deletions
|
@ -88,7 +88,7 @@ class MailHandler:
|
||||||
|
|
||||||
user_email = gen_email.user.email
|
user_email = gen_email.user.email
|
||||||
|
|
||||||
website_email = msg["From"]
|
website_email = get_email_part(msg["From"])
|
||||||
|
|
||||||
forward_email = ForwardEmail.get_by(
|
forward_email = ForwardEmail.get_by(
|
||||||
gen_email_id=gen_email.id, website_email=website_email
|
gen_email_id=gen_email.id, website_email=website_email
|
||||||
|
@ -253,6 +253,17 @@ def get_email_name(email_from):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def get_email_part(email_from):
|
||||||
|
"""parse email from header and return the email part
|
||||||
|
First Last <ab@cd.com> -> ab@cd.com
|
||||||
|
ab@cd.com -> ""
|
||||||
|
"""
|
||||||
|
if "<" in email_from:
|
||||||
|
return email_from[email_from.find("<") + 1 : email_from.find(">")].strip()
|
||||||
|
|
||||||
|
return email_from
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
controller = Controller(MailHandler(), hostname="0.0.0.0", port=20381)
|
controller = Controller(MailHandler(), hostname="0.0.0.0", port=20381)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from email_handler import get_email_name
|
from email_handler import get_email_name, get_email_part
|
||||||
|
|
||||||
|
|
||||||
def test_get_email_name():
|
def test_get_email_name():
|
||||||
|
@ -6,3 +6,10 @@ def test_get_email_name():
|
||||||
assert get_email_name("First Last<ab@cd.com>") == "First Last"
|
assert get_email_name("First Last<ab@cd.com>") == "First Last"
|
||||||
assert get_email_name(" First Last <ab@cd.com>") == "First Last"
|
assert get_email_name(" First Last <ab@cd.com>") == "First Last"
|
||||||
assert get_email_name("ab@cd.com") == ""
|
assert get_email_name("ab@cd.com") == ""
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_email_part():
|
||||||
|
assert get_email_part("First Last <ab@cd.com>") == "ab@cd.com"
|
||||||
|
assert get_email_part("First Last<ab@cd.com>") == "ab@cd.com"
|
||||||
|
assert get_email_part(" First Last <ab@cd.com>") == "ab@cd.com"
|
||||||
|
assert get_email_part("ab@cd.com") == "ab@cd.com"
|
||||||
|
|
Loading…
Reference in a new issue