Skip to content

Commit 4cc4f50

Browse files
committed
Merged in [8254] from rjsparks@nostrum.com:\n Don't send mail to unknown-email-* addresses. Fixes bug ietf-tools#1471.
- Legacy-Id: 8365 Note: SVN reference [8254] has been migrated to Git commit f7f29a6
1 parent 9f2ad03 commit 4cc4f50

3 files changed

Lines changed: 10 additions & 4 deletions

File tree

ietf/submit/mail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
def submission_confirmation_email_list(submission):
1414
try:
1515
doc = Document.objects.get(name=submission.name)
16-
email_list = [i.author.formatted_email() for i in doc.documentauthor_set.all()]
16+
email_list = [i.author.formatted_email() for i in doc.documentauthor_set.all() if not i.author.invalid_address()]
1717
except Document.DoesNotExist:
1818
email_list = [u"%s <%s>" % (author["name"], author["email"])
1919
for author in submission.authors_parsed() if author["email"]]

ietf/submit/tests.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
from ietf.utils.test_data import make_test_data
1414
from ietf.utils.mail import outbox
1515
from ietf.utils.test_utils import TestCase
16-
from ietf.submit.utils import expirable_submissions, expire_submission
16+
from ietf.submit.utils import expirable_submissions, expire_submission, ensure_person_email_info_exists
1717
from ietf.person.models import Person
1818
from ietf.group.models import Group
19-
from ietf.doc.models import Document, DocEvent, State, BallotDocEvent, BallotPositionDocEvent
19+
from ietf.doc.models import Document, DocEvent, State, BallotDocEvent, BallotPositionDocEvent, DocumentAuthor
2020
from ietf.submit.models import Submission, Preapproval
2121

2222
class SubmitTests(TestCase):
@@ -179,6 +179,10 @@ def test_submit_existing(self):
179179
draft = make_test_data()
180180
prev_author = draft.documentauthor_set.all()[0]
181181

182+
# Make it such that one of the previous authors has an invalid email address
183+
bogus_email = ensure_person_email_info_exists('Bogus Person',None)
184+
DocumentAuthor.objects.create(document=draft,author=bogus_email,order=draft.documentauthor_set.latest('order').order+1)
185+
182186
# pretend IANA reviewed it
183187
draft.set_state(State.objects.get(used=True, type="draft-iana-review", slug="not-ok"))
184188

@@ -225,6 +229,8 @@ def test_submit_existing(self):
225229
# submitter and new author can't confirm
226230
self.assertTrue("author@example.com" not in confirm_email["To"])
227231
self.assertTrue("submitter@example.com" not in confirm_email["To"])
232+
# Verify that mail wasn't sent to know invalid addresses
233+
self.assertTrue("unknown-email-" not in confirm_email["To"])
228234

229235
confirm_url = self.extract_confirm_url(confirm_email)
230236

ietf/utils/mail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def send_smtp(msg, bcc=None):
7474
addrlist = msg.get_all('To') + msg.get_all('Cc', [])
7575
if bcc:
7676
addrlist += [bcc]
77-
to = [addr for name, addr in getaddresses(addrlist) if addr != '' ]
77+
to = [addr for name, addr in getaddresses(addrlist) if ( addr != '' and not addr.startswith('unknown-email-') )]
7878
if not to:
7979
log("No addressees for email from '%s', subject '%s'. Nothing sent." % (frm, msg.get('Subject', '[no subject]')))
8080
else:

0 commit comments

Comments
 (0)