跳转到主要内容

单个网站支持多个SMTP配置

项目描述

CI Status

为什么?

某些项目可能需要在多个SMTP中继或智能主机上发送电子邮件。例如,运行在多个域上的网站,例如info@example.cominfo@example.org。可能可以使用相同的SMTP凭证为每个发送地址,但如果这不可能,django-email-hosts可能是解决该问题的好方法。

用法

  • 安装: pip install django-email-hosts

  • 配置: 添加EMAIL_HOSTS设置

  • 使用: 始终明确使用由email_hosts.backends.get_connection返回的SMTP连接

EMAIL_HOSTS

EMAIL_HOSTS字典的键由您定义,它们没有更深的意义。值是受dj-email-url DSN启发的DSN。

一个示例配置(可能没有意义)看起来像这样

EMAIL_HOSTS = {
    "sendgrid": "submission://USER:PASSWORD@smtp.sendgrid.com?_default_from_email=info@example.com",
    "mailgun": "submission://USER:PASSWORD@smtp.mailgun.com?_default_from_email=info@example.org",
}

此配置创建了两个SMTP后端,一个使用Sendgrid,另一个使用Mailgun。_default_from_email是可选的。如果电子邮件消息的from_email没有设置(或等于DEFAULT_FROM_EMAIL设置),它将自动默认为每个后端的值。

email_hosts.backends.get_connection

get_connection函数期望上述EMAIL_HOSTS设置的单个键。使用上面的设置发送单个电子邮件,可能如下所示

from django.core.mail import EmailMessage
from email_hosts.backends import get_connection

EmailMessage(
    "Hello",
    "World",
    to=["recipient@example.com"],
    connection=get_connection("sendgrid"),
).send()

get_connection当前在EMAIL_HOSTS字典中不存在键时,静默返回默认电子邮件后端。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django_email_hosts-0.2.1.tar.gz (9.2 kB 查看哈希值)

上传时间

构建分发

django_email_hosts-0.2.1-py3-none-any.whl (5.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面