Django中的SMTPRecipientsRefused发送电子邮件

时间:2018-05-07 16:23:22

标签: django

我试图通过我的Django应用程序发送电子邮件。我在local_settings.py

中有这个
EMAIL_HOST = 'smtp.privateemail.com'
EMAIL_HOST_USER = 'support@mydomain.com'
EMAIL_HOST_PASSWORD = 'myPassword'
EMAIL_PORT = 587
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True

我在views.py

中有这个
send_mail(
    subject="Subject here",
    message="Hello.",
    from_email=settings.EMAIL_HOST_USER,
    recipient_list=["someone@gmail.com],
    fail_silently=False,
)

但是当send_mail()执行时,我收到此错误:

{u'someone@gmail.com': (504, '5.5.2 <webmaster@localhost>: Sender address rejected: need fully-qualified address')}

为什么呢?如何使我的应用程序正确发送电子邮件?

3 个答案:

答案 0 :(得分:2)

错误消息表明它需要一个完全限定的地址。基本上,域名部分应该是完全限定的域名,例如removeDuplicates(arr) { const map = new Map(); arr.forEach(v => map.set(v.abc_buildingid, v)) // having `abc_buildingid` is always unique return [...map.values()]; } // this hook is better to start fetching data than componentWillMount componentDidMount() { fetch("https://api.myjson.com/bins/b1i6q", { method: "GET", headers: { Accept: "application/json", "Content-type": "application/json" } }) .then(results => results.json()) .then(data => this.setState({ data: this.removeDuplicates(data) })); // use the defined method } //end life cycle ,而您使用window.stencilUtils.api.product.getById(productID, { template: 'products/template' }, (err, response) => { console.log(response); });

从您的实际域名地址发送电子邮件,该邮件应该被接受。

还有一件事。您还需要验证您的域名,以便Gmail知道您实际拥有它。否则,Gmail会将您域中发送的电子邮件标记为垃圾邮件,或者只是将您列入黑名单并拒绝您域中的所有邮件。

域身份验证是一个相当广泛的主题。 Gmail发布了一些关于发送邮件的指南,这是一个很好的起点。请参阅Authentication & Identification部分了解详情。

答案 1 :(得分:0)

缺少报价

send_mail(
    subject="Subject here",
    message="Hello.",
    from_email=settings.EMAIL_HOST_USER,
    recipient_list=["someone@gmail.com"], # <---
    fail_silently=False, 
 )

并确保您在EMAIL_HOST_USER

中使用真实域名

答案 2 :(得分:0)

将Tls设置更改为EMAIL_USE_SSL = True 私人邮件仅支持SSl