Django使用SMTP后端发送邮件无法发送电子邮件

6
我正在使用Amazon的EC2托管一个基于Django的项目,使用postfix SMTP邮件服务器在ubuntu堆栈上部署。我可以使用Linux邮件程序从服务器发送电子邮件。但是,当我尝试使用django.core.mail.send_mail发送电子邮件时,收件人却无法收到电子邮件。

以下是我的设置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

除此之外,我将其他所有内容保留为默认设置。

我尝试执行如下命令:

python manage.py shell

然后在shell中,我执行了以下操作:

from django.core.mail import *
send_mail(
    'TEST',
    'THIS IS A TEST',
    'myemail@domain.com',
    ['toemail@domain.com'],
    fail_silently=False,
    )

这里返回1,但我从未在目的地(例如'toemail@domain.com')收到任何消息。

是否有教程介绍如何配置SMTP服务器以与Django邮件系统配合使用?谢谢。


我假设你已经在settings.py中指定了你的EMAIL_HOST、EMAIL_PORT、EMAIL_HOST_USER和EMAIL_HOST_PASSWORD,是吗?对于电子邮件端口,你是否已经在ec2的安全组中打开了smtp端口?如果你在postfix配置期间将其保留为默认值,则smtp端口通常默认为25。 - Calvin Cheng
1个回答

1

我假设你已经在settings.py中指定了你的EMAIL_HOST、EMAIL_PORT、EMAIL_HOST_USER和EMAIL_HOST_PASSWORD,对吧?

关于默认的django.core.mail.backends.smtp.EmailBackend的详细解释,请参考以下链接: https://docs.djangoproject.com/en/dev/topics/email/ https://docs.djangoproject.com/en/dev/topics/email/#smtp-backend

特别是针对你的电子邮件端口,你是否已经在EC2的安全组中打开了smtp端口?如果你在postfix配置期间将其保留为默认值,则SMTP端口通常默认为25,并且在创建EC2实例时打开该端口非常重要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接