diff --git a/app/dashboard/views/alias_contact_manager.py b/app/dashboard/views/alias_contact_manager.py index 113cbd09..4249e321 100644 --- a/app/dashboard/views/alias_contact_manager.py +++ b/app/dashboard/views/alias_contact_manager.py @@ -8,6 +8,7 @@ from wtforms import StringField, validators, ValidationError from app.config import EMAIL_DOMAIN from app.dashboard.base import dashboard_bp +from app.email_utils import parseaddr_unicode from app.extensions import db from app.log import LOG from app.models import Alias, Contact @@ -78,7 +79,13 @@ def alias_contact_manager(alias_id): if not Contact.get_by(reply_email=reply_email): break - _, contact_email = parseaddr(contact_addr) + try: + contact_name, contact_email = parseaddr_unicode(contact_addr) + except Exception: + flash(f"{contact_addr} is invalid", "error") + return redirect( + url_for("dashboard.alias_contact_manager", alias_id=alias_id,) + ) contact_email = contact_email.lower() contact = Contact.get_by(alias_id=alias.id, website_email=contact_email) @@ -97,7 +104,7 @@ def alias_contact_manager(alias_id): user_id=alias.user_id, alias_id=alias.id, website_email=contact_email, - website_from=contact_addr, + name=contact_name, reply_email=reply_email, )