我使用namecheap.com注册了域名和私人电子邮件。我正在尝试通过此私人电子邮件发送电子邮件。但是,我在标题中收到错误。
在我的settings.py中,我有以下设置:
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_HOST_USER = 'contact@mysite.com'
EMAIL_HOST_PASSWORD = 'my password'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
我正在尝试通过视图发送电子邮件:
send_mail(
'Subject here',
'Here is the message.',
'contact@mysite.com',
['myname@gmail.com'],
fail_silently=False,
)
但是,当我加载视图时,我收到此错误,并尝试发送电子邮件:
SMTPServerDisconnected at /
Connection unexpectedly closed: [Errno 54] Connection reset by peer
我做错了什么?我该如何解决这个问题?感谢。
修改
将端口更改为587后,出现以下错误:
SMTPException at /
STARTTLS extension not supported by server.
知道为什么吗?任何帮助表示赞赏。
答案 0 :(得分:2)
EMAIL_HOST = os.getenv("EMAIL_HOST")
EMAIL_PORT = os.getenv("EMAIL_PORT")
EMAIL_USE_SSL = os.getenv("EMAIL_USE_SSL")
EMAIL_HOST_USER = os.getenv("EMAIL_HOST_USER")
EMAIL_HOST_PASSWORD = os.getenv("EMAIL_HOST_PASSWORD")
使用SSL
代替TLS
解决了我的问题。
答案 1 :(得分:1)
您使用的EMAIL_USE_TLS = True
不适用于托管域电子邮件。
使用EMAIL_USE_SSL = True
这是完整的配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_SSL = True
EMAIL_HOST = 'mail.<domain>.com'
EMAIL_HOST_USER = '<some_name>@<domain>.com'
EMAIL_HOST_PASSWORD = '<user_password>'
EMAIL_PORT = 465
答案 2 :(得分:0)