2 回答
TA贡献1906条经验 获得超3个赞
[已修复] 这是我发送电子邮件的 Django 代码:
(大约 12 小时后...)
1) 我在 settings.py 中缺少配置
settings.py
DEFAULT_FROM_EMAIL = 'admin@********.com'
SERVER_EMAIL = 'admin@********.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'mail.********.com'
EMAIL_HOST_USER = 'admin@********.com'
EMAIL_HOST_PASSWORD = '*******'
EMAIL_PORT = 587
2) Windows 配置
它与以下无关:
防火墙
杀毒软件
3) 我不确定 SMTP 服务器的名称
确保您拥有正确的凭据 settings.py
我的hotmail最后没有用。我不得不使用主机服务提供的电子邮件。
4) Python shell 与 Django shell 不同
我正在 python shell 中测试代码。正确的做法是调用:
python manage.py shell
而不仅仅是 python
发送电子邮件
(在您配置好 settings.py 文件之后)
您可以打开 Django shell 并复制代码或在 Django `views.py` 文件中写入特定视图
from django.core.mail import EmailMessage
mail_subject = 'Active a sua conta.'
message = "message"
to_email = "jaimedcsilva@hotmail.com"
email = EmailMessage(
mail_subject, message,to=[to_email]
)
email.send()
值得一提:
不适用于端口 465
电子邮件有时会进入垃圾文件夹
谢谢海梅
TA贡献2051条经验 获得超10个赞
这些EMAIL_*
值需要在您的设置模块中,而不是在您的脚本中。如果没有这些值,EmailBackend
处理发送消息的类将默认尝试连接到localhost:25
. 由于您没有在本地系统上运行 SMTP 服务器,因此它拒绝连接。
您不需要该EMAIL_BACKEND
值,因为它是默认值,但将其他EMAIL_*
值移动到您的设置模块中。
添加回答
举报