为什么我只得到状态码1,而不是一个Python错误消息时,我提供了错误的值到EMAIL\u后端?

2024-04-25 21:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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

最后我发现问题是因为settings.common.py中的EMAIL_BACKEND(包含django.core.mail.backends.smtp.EmailBackend)被settings.dev.py中的EMAIL_BACKEND(包含django.core.mail.backends.console.EmailBackend)以不同的值覆盖。你知道吗

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

  1. 为什么我没有得到任何Python错误?你知道吗
  2. 有没有办法得到这个错误的Python错误?如果这是不可能的,我应该如何调试这个正确?你知道吗

Tags: tofrompycomheresettingsisaddress
1条回答
网友
1楼 · 发布于 2024-04-25 21:36:18

您看到的返回值是处理的消息数。从^{} method

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服务器。你知道吗

相关问题 更多 >