Python 如何在Django中获取SMTP服务器响应代码? 目标:

Python 如何在Django中获取SMTP服务器响应代码? 目标:,python,django,email,django-2.0,django-3.0,Python,Django,Email,Django 2.0,Django 3.0,嗨!如何通过Django获得SMTP响应代码,类似于从smtplib模块中给出的返回值???我想使用Django的api,而不是必须使用它,我在中看不到任何东西 我知道send_mail()、send_mass_mail()和EmailMessage。send_messages(…)都有返回值,显示成功传递的邮件数。。。但是我想要所有这些的回应码。关键是要证明电子邮件已经发送,电子邮件地址不正确,等等,比如show 在我看来,我必须为此定制一个电子邮件后端,并从BaseEmailBackend创

嗨!如何通过Django获得SMTP响应代码,类似于从
smtplib
模块中给出的返回值???我想使用Django的api,而不是必须使用它,我在中看不到任何东西

我知道
send_mail()
send_mass_mail()
EmailMessage。send_messages(…)
都有返回值,显示成功传递的邮件数。。。但是我想要所有这些的回应码。关键是要证明电子邮件已经发送,电子邮件地址不正确,等等,比如show

在我看来,我必须为此定制一个电子邮件后端,并从
BaseEmailBackend
创建子类

smtplib
的响应代码示例
如果您只想检查邮件是否已发送,可以使用函数的返回值

返回值将是成功传递的消息数 (可以是0或1,因为它只能发送一条消息)

Django捕获smtplib错误,如果发生任何错误,则返回0;如果fail\u为false,则返回exception(默认为true)

django.core.mail.backends.smtp.EmailBackend
source():


同样的事情发生在

为什么你想在ehlo()之后得到回应我不想。这只是一个例子:“关键是要证明电子邮件已发送、电子邮件地址不正确等等,就像smtp响应代码显示的那样。”
import smtplib
obj = smtplib.SMTP('smtp.gmail.com', 587)
response = obj.ehlo()
print(response)

# Obviously this doesn't send a message yet, but I want response[0]
(250, b'smtp.gmail.com at your service, [111.222.33.44]\nSIZE 31234577\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES\nPIPELINING\nCHUNKING\nSMTPUTF8')
try:
    self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n'))
except smtplib.SMTPException:
    if not self.fail_silently:
            if not self.fail_silently:
            raise
        return False
    return True