Monday, June 27, 2011

Re: Django won't send 500 or 404 emails, but django.core.mail.EmailMessage and django.utils.log.AdminEmailHandler work

On Mon, Jun 27, 2011 at 8:02 PM, Russell Keith-Magee
<russell@keith-magee.com> wrote:
> On Mon, Jun 27, 2011 at 7:02 AM, Kyle Gong <kyle@kiwiinteractive.com> wrote:
>> I was trying to avoid setting up a mail server by just sending through
>> gmail's SMTP server. It is sending correctly through
>> django.utils.log.AdminEmailHandler and it was my understanding that they
>> worked through the same mechanisms?
>
> My apologies -- I didn't register that you were using connecting
> directly to GMail's servers to send mail.
>
> You haven't provided your mail settings, so it's impossible to know
> exactly what is going wrong, but my best guess would be that you don't
> have the EMAIL_USE_TLS setting enabled. GMail's servers use TLS to
> provide on-the-wire security, but Django has this turned off by
> default (since most mail servers don't enable TLS by default).
>
> As far as debugging this problem goes -- my advice would be to start
> lower in the stack. I can guarantee that if your email configuration
> is right, then 404 mails will be sent -- the real issue is whether the
> email configuration is correct. To verify this, use the mail APIs
> directly. From a Python prompt on your sever:
>
>>>> from django.core import mail
>>>> mail.send_mail("A subject", "This is the message", "me@example.com", ["recipient@example.com"])
>
> substituting "me@example.com" with your own address, and
> "recipient@example.com" with another email address you can test with.
> This call should return 1, indicating that 1 email was sent. If it
> doesn't, or it raises an error, you should get some indication of what
> has gone wrong.

... and I've just re-read your original message, and realized that
you've already done this.

/me looks sheepish

So, If DEBUG = False, and SEND_BROKEN_LINK_EMAILS = True, then you
should be getting emails on 404s.

Trying to think of some other reasons you might not be getting error emails...

You wont be getting 500 emails if:
* you have a custom 500 handler, or
* if DEBUG_PROPAGATE_EXCEPTIONS is enabled

You won't be getting 404 messages if
* the common middleware isn't enabled
* the URLs you're hitting match the values in IGNORABLE_404_STARTS,
IGNORABLE_404_ENDS or IGNORABLE_404_URLS
* Your user agent isn't settings a HTTP_REFERER header
* Your user agent hasn't got a HTTP_REFERER header that matches the
domain of your server

Hope this is slightly more helpful than my last two attempts...

Yours,
Russ Magee %-)

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment