跳转到主要内容

GOV.UK Notify风味的Django电子邮件后端

项目描述

django-gov-notify,一个GOV.UK Notify风味的Django电子邮件后端

GitHub workflow

django-gov-notify提供了与GOV.UK Notify服务的Django集成,用于发送电子邮件和短信消息。Python客户端文档

这是作为一个自定义Django电子邮件后端实现的。它提供了类似于标准Django电子邮件后端的内部API,但有一些限制

  • GOV.UK Notify电子邮件每次只发送给一个收件人。CC:和BCC:字段不受支持。
  • 带有多个收件人的单个电子邮件“消息”将导致对GOV.UK Notify的多个单独API调用,每个消息都发送给单个收件人。后端仍然会报告回1,如Django的默认行为。
  • 附件(目前)不受支持。
  • 自定义头不受支持。
  • 要配置“回复到”地址,您必须首先在GOV.UK Notify管理界面中配置此类地址。
  • “来自”地址字段不受支持。这必须在GOV.UK Notify管理界面中配置。
  • 预格式化电子邮件应配置为服务管理仪表板中的Markdown模板和占位符。
  • 邮件正文被解释为非常有限的Markdown。在测试中,变量似乎没有被解释为Markdown,或者可能被破坏,例如_test_在邮件中发送为*test*

兼容性

django-gov-notify支持

  • Python 3.8, 3.9, 3.10和3.11
  • Django 3.2, 4.1和4.2

安装

使用pip

$ pip install django-gov-notify

使用Poetry

$ poetry add django-gov-notify

配置

在您的Django项目设置中

EMAIL_BACKEND = "django_gov_notify.backends.NotifyEmailBackend"

您至少需要一个邮箱模板ID,带有一个纯模板

主题:((主题))
正文:((正文))

设置Django设置

  • GOVUK_NOTIFY_API_KEY(注意:不是GOV_UK…)
  • GOVUK_NOTIFY_PLAIN_EMAIL_TEMPLATE_ID

这个纯模板ID设置,以及传递给NotifyEmailMessage类的模板ID,使用UUID键的字符串表示形式。

使用方法

使用模板发送邮件

GOV.UK Notify仪表板中配置模板

主题:关于((主题))的消息
正文:您好((名字)),您的参考编号为((编号))

创建一个电子邮件消息,提供模板ID和一个个性化字典(这还应该包括在模板主题中定义的任何变量)

from django_gov_notify.message import NotifyEmailMessage

message = NotifyEmailMessage(
    to=["recipient@example.com"],
    template_id="43573f75-80e7-402f-b308-e5f1066fbd6f",
    personalisation={
        "topic": "The Prisoner",
        "first name": "Patrick",
        "ref number": "6",
    },
)
message.send()

注意,在这种情况下,主题和正文不是必需的,也不允许,因为个性化字典不知道如何使用它们。

使用默认(空白)模板发送邮件

这假设您已配置了一个带有参数的空白模板

主题:((主题))
正文:((正文))

from django_gov_notify.message import NotifyEmailMessage

message = NotifyEmailMessage(
    subject="Test subject", body="Test message content", to=["recipient@example.com"]
)
message.send()

注意,在这种情况下,主题和正文是必需的,并且您不得传递template_idpersonalisation关键字参数。

使用send_mail快捷函数发送邮件

像平常一样使用它,包括将被丢弃的'from'地址

from django.utils.mail import send_mail

send_mail("Subject", "Message content", "from@example.com", ["recipient@example.com"])

这将使用配置为settings.GOVUK_NOTIFY_PLAIN_EMAIL_TEMPLATE_ID的空白模板ID。不支持附件、自定义头和密送收件人。

贡献

要本地工作在此存储库上

  • 安装:poetry install
  • 运行测试:poetry run python runtests.py

项目详情


下载文件

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

源分布

django_gov_notify-0.5.0.tar.gz (5.7 kB 查看散列

上传时间:

构建分布

django_gov_notify-0.5.0-py3-none-any.whl (6.8 kB 查看散列

上传时间: Python 3

由以下机构支持

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