Django在发送邮件时检测错误

时间:2014-06-30 09:15:04

标签: python django email

def send_one_mail(request):
   send_mail('The subject', 'The body to testing', 'userone@example.com',['usertwo@gmail.com'],    fail_silently=False)
   return HttpResponse("This mail has sent successfull")

我的settings.py是

EMAIL_USE_TLS = True
EMAIL_HOST = 'mail.example.com'
EMAIL_HOST_USER = 'userone@example.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = 'userone@example.com'
SERVER_EMAIL = 'userone@example.com'

我有一个视图(有效)如上图所示,这里userone@example.com是发件人和usertwo@gmail.com 是接收者。

如何根据发送邮件中的错误进行检查和操作? (我想显示"发生了一些错误"出现此类错误)

如何判断usertwo@gmail.com(reciver)是否存在? (如果无法联系到电子邮件,我想向用户显示该电子邮件不存在)

我在服务器中使用postfix,dovecot等。

2 个答案:

答案 0 :(得分:1)

使用fail_silently = False时,您可以选择一些错误。只需将send_mail包装在try / except。

当我想要更多地控制电子邮件发送时,我完全停止使用django邮件并安装了lamson(lamsonproject.org)。您基本上可以使用它创建自己的邮件服务器,将django orm附加到它上面,并提供有关您的电子邮件发生的详细反馈。如果您在某些电子邮件(如图像)中插入某种可下载内容,那么您甚至可以为图像添加哈希值,并在打开电子邮件时验证这种方式。您也可以使用基于django的电子邮件发送。 Lamson只需更多地控制点击发送按钮后的内容和方式。

答案 1 :(得分:0)

django的信箱队列

无论如何,我终于使用了以下软件包。

pip install django-mail-queue

这是文档

https://django-mail-queue.readthedocs.org/en/latest/