我总觉得Django电子邮件的行为类似于电子邮件客户端,这就是为什么你必须指定一个EMAIL_HOST,一个EMAIL_HOST_PASSWORD和一个EMAIL_HOST_USER . 然后Django应用程序就像一个普通的电子邮件客户端,就像Outlook或Apple邮件....
我正在测试一个必须每隔一段时间发送一次电子邮件的应用程序 . 但在我的应用程序中,我执行这些语句:
subject, from_email, to = 'hello', 'noreply@dummy.com', 'dummy@gmail.com'
text_content = 'This is an important message.'
html_content = '<p>This is an <strong>important</strong> message.</p>'
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.send()
我正进入(状态...
Traceback (most recent call last):
File "<console>", line 1, in <module>
.
.
SMTPRecipientsRefused: {'dummy@gmail.com': (504, '5.5.2 <wmsdesktop>: Helo command rejected: need fully-qualified hostname')}
其中wmsdesktop是我的开发系统的名称 . 从这个错误我得到的印象是Django应用程序的行为类似于smtp服务器 .
或者我在这里遗漏了一些东西 . 请详细说明......
2 回答
发送电子邮件时,每个电子邮件“客户端”都使用SMTP .
SMTP是电子邮件的发送方式 .
所以,是的,Django在发送电子邮件时充当SMTP客户端,而不是电子邮件(POP或IMAP)客户端 .
看起来您正在使用的STMP服务器仅限制访问具有完全限定域名(example.com)的其他SMTP服务器,可以通过反向DNS查询进行验证 .
这是SMTP服务器的一种常见做法,因为它有助于消除匿名SMTP服务器,这些服务器通常用于发送垃圾邮件 .
一般来说,此限制不适用于经过身份验证的用户,但这取决于SMTP服务器 .
可以在 settings.py 文件中使用此代码
然后在 view.py 文件中使用此代码