Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug 1215226] Don't fail silently when sending emails. #2681

Merged
merged 1 commit into from Oct 15, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions kitsune/questions/cron.py
Expand Up @@ -210,5 +210,4 @@ def report_employee_answers():

email_addresses = [u.email for u in report_recipients]

send_mail(email_subject, email_body, settings.TIDINGS_FROM_ADDRESS, email_addresses,
fail_silently=False)
send_mail(email_subject, email_body, settings.TIDINGS_FROM_ADDRESS, email_addresses)
12 changes: 7 additions & 5 deletions kitsune/sumo/email_utils.py
Expand Up @@ -22,11 +22,13 @@ def send_messages(messages):
if not messages:
return

conn = mail.get_connection(fail_silently=True)
conn.open()

for msg in messages:
conn.send_messages([msg])
try:
conn = mail.get_connection()
conn.open()
for msg in messages:
conn.send_messages([msg])
finally:
conn.close()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I'm pretty sure you don't need the conn.close() because it will close automatically when the function ends and things get cleaned up.

Other than that, I think this looks good. Depending on what happens next, we might want to create message retrying. If we do that, then we're going to want to keep track of which messages succeeded and which failed. We might find that .send_messages() should be in a try/except block so that if we hit a failure, we skip just one message rather than that message and the rest in the list. I don't know offhand, though. I think this is good for now, but we might want to file a followup bug to hone it next week depending on what happens.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've always been told that I shouldn't rely on implicit destruction in Python. I looked into this a bit more and it would probably be fine in this case. I can switch it back.

I definitely agree we should add re-send logic at some point in the stack. I wanted to see what happened with this before we made too many decisions though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. I'm r+ on this, but not near a computer to merge it.

Can someone green-button this for me?
On Oct 15, 2015 4:58 PM, "Mike Cooper" notifications@github.com wrote:

In kitsune/sumo/email_utils.py
#2681 (comment):

@@ -22,11 +22,13 @@ def send_messages(messages):
if not messages:
return

  • conn = mail.get_connection(fail_silently=True)

- conn.open()

  • for msg in messages:
  •    conn.send_messages([msg])
    
  • try:
  •    conn = mail.get_connection()
    
  •    conn.open()
    
  •    for msg in messages:
    
  •        conn.send_messages([msg])
    
  • finally:
  •    conn.close()
    

I've always been told that I shouldn't rely on implicit destruction in
Python. I looked into this a bit more and it would probably be fine in this
case. I can switch it back.

I definitely agree we should add re-send logic at some point in the stack.
I wanted to see what happened with this before we made too many decisions
though.


Reply to this email directly or view it on GitHub
https://github.com/mozilla/kitsune/pull/2681/files#r42179538.



def safe_translation(f):
Expand Down