跳转到主要内容

Django电子邮件工具。

项目描述

Build Status

Mailmate 是一个 Django 应用,包含一些使处理电子邮件更简单的工具。其主要功能是使用 Django 模板以简单、基于类的方式定义电子邮件消息。以下是一个简短的介绍

from mailmate import TemplatedEmailMessage

class MyEmail(TemplatedEmailMessage):
    to = ['some-user@some-email.com']
    from_email = 'no-reply@some-email.com'
    subject = 'Hello, {{ name }}!'
    template_name = 'emails/template.txt'

MyEmail(extra_context={'name': 'Jerry'}).send()

安装

pip install django-mailmate

TemplatedEmailMessage

扩展 TemplatedEmailMessage,并设置类属性。您可以通过将关键字参数传递给构造函数来覆盖这些属性中的任何一个。

from mailmate import TemplatedEmailMessage

class MyEmail(TemplatedEmailMessage):
    to = ['some-user@some-email.com']
    from_email = 'no-reply@some-email.com'
    subject = 'Hello!'
    template = 'emails/template.txt'

MyEmail(to=['somebodyelse@somewhereelse.com']).send()

您可以使用模板来定义您的电子邮件正文(如上述示例所示),或者将其定义为字符串

from mailmate import TemplatedEmailMessage

class MyEmail(TemplatedEmailMessage):
    to = ['some-user@some-email.com']
    subject = "The subject is parsed as a {{ what }}"
    body = "The body's also parsed as a {{ what }}."

MyEmail(extra_context={'what': 'Django template!'}).send()

TemplatedEmailMessage 还使得创建 HTML 电子邮件变得简单。只需将一个 html_template_name 属性添加到您的类中(或将它传递给构造函数)

from mailmate import TemplatedEmailMessage

class MyEmail(TemplatedEmailMessage):
    to = ['some-user@some-email.com']
    subject = "The subject is parsed as a {{ what }}"
    body = "The body's also parsed as a {{ what }}."
    html_template_name = 'emails/my_email.html'

TemplatedEmailMessage 类扩展了 django.core.mail.EmailMultiAlternatives,因此您无需对您喜欢的后端进行任何特殊处理即可使用它。

如果您安装了 markdownify,则可以省略消息的纯文本版本;mailmate 将自动从 HTML 版本生成一个。否则,省略 bodytemplate_name 会导致引发 MissingBody 异常。如果您想发送没有纯文本正文的电子邮件,则必须明确地将 body 设置为空字符串。

CleanEmailBackend

Mailmate 还包括一个特殊的后端,可以帮助您调试电子邮件。它与 Django 的 django.core.mail.backends.filebased.EmailBackend 类似,但除了 *.log 文件外,它还会保存包含每封邮件版本的正文内容的文件。例如,如果您发送了一封同时具有纯文本和 HTML 版本的邮件,它将保存一个 *.log 文件(包含整个消息),一个 *.txt 文件(包含纯文本正文)和一个 *.html 文件(包含 HTML 选项的正文)。

要使用它,请将 settings.py 中的 EMAIL_BACKENDEMAIL_FILE_PATH 设置配置好

EMAIL_BACKEND = 'mailmate.backends.CleanEmailBackend'
EMAIL_FILE_PATH = '/path/to/messages/'

项目详情


下载文件

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

源代码发行版

django-mailmate-1.3.0.tar.gz (20.0 kB 查看哈希值)

上传时间 源代码

由以下机构支持

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