I wanted to send an email with Django(1.5), in my console it looked like the following:
In [30]: send_mail("bla", "here it is", "[email protected]",
["[email protected]"], fail_silently=False)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: bla
From: [email protected]
To: [email protected]
Date: Sat, 14 Dec 2013 11:56:37 -0000
Message-ID: <20131214115637.4720.60719@my_username-E531>
here it is
-------------------------------------------------------------------------------
Out[30]: 1
Eventually I found the problem was caused because EMAIL_BACKEND (containing django.core.mail.backends.smtp.EmailBackend) in settings.common.py was being overwritten by EMAIL_BACKEND (containing django.core.mail.backends.console.EmailBackend) in settings.dev.py with a different value.
The only explicit clue I had that something went wrong was Out[30]: 1, as I understand an exit status of an unsuccessful run of a process.
- How come I didn't get any Python error?
- Was there a way to get the Python error for this error? If this was not possible how should I have debugged this properly?
The return value you see is the number of messages processed. From the
django.core.mail.backends.base.BaseEmailBackend.send_messages()method:The backend you are using, even though it is the wrong one, is indicating it sent 1 message.
If this is the
django.core.mail.console.EmailBackend()backend, that just means 1 message was written tosys.stdout, but otherwise not forwarded to a SMTP server.