#29430: django.core.mail.send_mail()'s fail_silently kwarg is documented
confusingly
--------------------------------------+------------------------------------
     Reporter:  ティン・ルーフ        |                    Owner:  nobody
         Type:  Cleanup/optimization  |                   Status:  new
    Component:  Documentation         |                  Version:  2.0
     Severity:  Normal                |               Resolution:
     Keywords:                        |             Triage Stage:  Accepted
    Has patch:  0                     |      Needs documentation:  0
  Needs tests:  0                     |  Patch needs improvement:  0
Easy pickings:  1                     |                    UI/UX:  0
--------------------------------------+------------------------------------

Comment (by Sub):

 From an initial glance, I can see that fail_silently is only used in the
 smtp.py service file to decide whether an exception should be raised.

 See lines 127-128:
 
https://github.com/django/django/blob/5a6f70b4281817656db2f36c5919036d38fcce7f/django/core/mail/backends/smtp.py

 The exception to be raised in this case is smtplib.SMTPException. I agree
 that it does not guarantee that this exception will be raised, and could
 be misinterpreted. Maybe it would be clearer as "If it’s False, send_mail
 will raise an smtplib.SMTPException if an error occurs." I think it should
 definitely be explaining the False case, (not True) as we want to explain
 the what happens if the failure isn't ignored.

 Replying to [ticket:29430 ティン・ルーフ]:
 > From https://docs.djangoproject.com/en/2.0/topics/email/#send-mail: “If
 it’s False, send_mail will raise an smtplib.SMTPException.”
 >
 > This is often untrue, and certainly misleading. Certainly, if it's
 False, send_mail is ''capable'' of raising SMTPException, but it's not
 guaranteed.
 >
 > I was going to open a pull request and change it to “If it's True,
 send_mail can raise smtplib.SMTPException”, but I'm not confident that
 other exceptions cannot be raised, or that send_mail will never raise
 SMTPException if fail_silently is True.
 >
 > The main thing I would like would be for the intent of fail_silently to
 be expressed; what kind of errors is it trying to suppress, for example?
 What kind of emails could a Django site be sending that are unimportant
 enough that failing silently is a good idea?

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29430#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/066.222d7cd649f17185a7d24aa9738d03ea%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to