diff --git a/zerver/management/commands/email-mirror.py b/zerver/management/commands/email-mirror.py index ed874efb33..6033184077 100755 --- a/zerver/management/commands/email-mirror.py +++ b/zerver/management/commands/email-mirror.py @@ -18,6 +18,7 @@ Run this management command out of a cron job. import email from os import path from email.header import decode_header +from email.utils import getaddresses import logging import re import sys @@ -159,9 +160,11 @@ def delete(result, proto): def find_emailgateway_recipient(message): # We can't use Delivered-To; that is emailgateway@zulip.com. for header in ("To", "Cc", "Bcc"): - recipient = message.get(header) - if recipient and recipient.lower().endswith("@streams.zulip.com"): - return recipient + recipients = getaddresses(message.get_all(header, [])) + for recipient_name, recipient_email in recipients: + if recipient_email.lower().endswith("@streams.zulip.com"): + return recipient_email + raise ZulipEmailForwardError("Missing recipient @streams.zulip.com") def fetch(result, proto, mailboxes):