0

我想用 Django( 1.5) 发送一封电子邮件,在我的控制台中它如下所示:

In [30]: send_mail("bla", "here it is", "from_address@gmail.com", 
["to_address@gmail.com"], fail_silently=False)

Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: bla
From: from_address@gmail.com
To: to_address@gmail.com
Date: Sat, 14 Dec 2013 11:56:37 -0000
Message-ID: <20131214115637.4720.60719@my_username-E531>

here it is
-------------------------------------------------------------------------------
Out[30]: 1

最终我发现问题是因为EMAIL_BACKEND(包含django.core.mail.backends.smtp.EmailBackend) insettings.common.pyEMAIL_BACKEND(包含django.core.mail.backends.console.EmailBackend) insettings.dev.py以不同的值覆盖。

我知道出现问题的唯一明确线索是Out[30]: 1,因为我了解进程运行不成功的退出状态。

  1. 为什么我没有收到任何 Python 错误?
  2. 有没有办法为这个错误获取 Python 错误?如果这是不可能的,我应该如何正确调试它?
4

1 回答 1

1

您看到的返回值是处理的消息数。从django.core.mail.backends.base.BaseEmailBackend.send_messages()方法

def send_messages(self, email_messages):
    """
    Sends one or more EmailMessage objects and returns the number of email
    messages sent.
    """

您正在使用的后端,即使它是错误的,也表明它发送了 1 条消息。

如果这是django.core.mail.console.EmailBackend()后端,则仅表示 1 条消息已写入sys.stdout,否则未转发到 SMTP 服务器。

于 2013-12-14T18:57:09.483 回答