如何使用 Django 将电子邮件作为别名发送

Posted

技术标签:

【中文标题】如何使用 Django 将电子邮件作为别名发送【英文标题】:How to send email as alias using Django 【发布时间】:2014-01-07 16:33:31 【问题描述】:

背景:

我有一个使用 Django 构建的网站,但遇到了以下难题。我有一个后端电子邮件,我们将调用luckyducky@gmail.com。现在我还有一个域电子邮件直接转发到luckyduck@gmail.com,称为support@luckyducky.com。

目前我的 Django 电子邮件设置如下:

EMAIL_HOST_USER="luckyducky@gmail.com"
EMAIL_HOST_PASSWORD="password"

这很好用,但我希望从“support@luckyducky.com”发送电子邮件。

注意:

将 Python 社区作为一个整体包括在内,因为也许该问题可以在 Django 邮件包装函数之外解决。

问题:

如何设置此重定向?意思是,当我在 Django 后端配置的真实电子邮件是luckyducky@gmail.com 时,如何以别名“support@luckyducky.com”发送电子邮件?

【问题讨论】:

如果您要发送大量电子邮件,您可以使用 Madnrill App 等服务电子邮件,而不是使用 Django 后端。 发送电子邮件是一项棘手的工作。看看 Amazon SES,效果很好,而且对小批量免费。并且具有易于使用的python API。为您的域设置 DKIM 后,您就可以开始发送签名邮件了。 【参考方案1】:

取自 django 文档 分两行:

from django.core.mail import send_mail

send_mail('Subject here', 'Here is the message.', 'support@luckyducky.com',
    ['to@example.com'], fail_silently=False)

使用 EMAIL_HOST 和 EMAIL_PORT 设置中指定的 SMTP 主机和端口发送邮件。 EMAIL_HOST_USER 和 EMAIL_HOST_PASSWORD 设置(如果设置)用于对 SMTP 服务器进行身份验证,EMAIL_USE_TLS 和 EMAIL_USE_SSL 设置控制是否使用安全连接。

【讨论】:

【参考方案2】:

settings.EMAIL_HOST_USER 仅用于与 SMTP 服务器进行身份验证。 django.core.mail.send_mail() 的第三个参数是From: 地址。

【讨论】:

也就是说,它是否允许您使用这些凭据发送声称来自给定From: 地址的邮件取决于 SMTP 服务器。如果它不允许,那可能是有充分理由的。

以上是关于如何使用 Django 将电子邮件作为别名发送的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中通过电子邮件发送链接?

Django:如何发送带有嵌入图像的 HTML 电子邮件

如何使用 django-mailer 定时发送电子邮件

如何在 Outlook 2013 中更改默认发送为电子邮件(不同别名)?

如何使用Gmail的别名功能?

多个用户如何在 Node.js 中使用 Gmail 别名发送电子邮件,而无需 Google 开发人员控制台对每个用户进行用户身份验证?