跳转到主要内容

简单的电子邮件编辑与分解

项目描述

Project Status: Active — The project has reached a stable, usable state and is being actively developed. CI Status https://codecov.io/gh/jwodder/eletter/branch/master/graph/badge.svg https://img.shields.io/pypi/pyversions/eletter.svg MIT License

GitHub | PyPI | 文档 | 问题 | 变更日志

eletter 提供了构建和分解 email.message.EmailMessage 实例的功能,而不必接触本身过于复杂的 EmailMessage 类。一个简单的函数可以用于创建带有文本和/或HTML正文以及附件的电子邮件,并提供类用于构建更复杂的多部分电子邮件。

安装

eletter 需要 Python 3.6 或更高版本。只需使用 Python 3 的 pip 安装 eletter 及其依赖项即可(您有pip吗?)

python3 -m pip install eletter

示例

使用 compose() 函数构建电子邮件

import eletter

TEXT = (
    "Oh my beloved!\n"
    "\n"
    "Wilt thou dine with me on the morrow?\n"
    "\n"
    "We're having hot pockets.\n"
    "\n"
    "Love, Me\n"
)

HTML = (
    "<p>Oh my beloved!</p>\n"
    "<p>Wilt thou dine with me on the morrow?</p>\n"
    "<p>We're having <strong>hot pockets</strong>.<p>\n"
    "<p><em>Love</em>, Me</p>\n"
)

with open("hot-pocket.png", "rb") as fp:
    picture = eletter.BytesAttachment(
        content=fp.read(),
        filename="enticement.png",
        content_type="image/png",
    )

msg = eletter.compose(
    subject="Meet Me",
    from_="me@here.qq",
    to=[eletter.Address("My Dear", "my.beloved@love.love")],
    text=TEXT,
    html=HTML,
    attachments=[picture],
)

msg 可以像其他 EmailMessage 一样发送,例如使用 outgoing

对于更复杂的电子邮件,提供了一系列类。以下是从 Python 文档中 email 示例页面 的 HTML-with-image 电子邮件及其替代纯文本版本的等效代码。

from email.utils import make_msgid
import eletter

text = eletter.TextBody(
    "Salut!\n"
    "\n"
    "Cela ressemble à un excellent recipie[1] déjeuner.\n"
    "\n"
    "[1] http://www.yummly.com/recipe/Roasted-Asparagus-Epicurious-203718\n"
    "\n"
    "--Pepé\n"
)

asparagus_cid = make_msgid()

html = eletter.HTMLBody(
    "<html>\n"
    "  <head></head>\n"
    "  <body>\n"
    "    <p>Salut!</p>\n"
    "    <p>Cela ressemble à un excellent\n"
    '        <a href="http://www.yummly.com/recipe/Roasted-Asparagus-'
    'Epicurious-203718">\n'
    "            recipie\n"
    "        </a> déjeuner.\n"
    "    </p>\n"
    f'    <img src="cid:{asparagus_cid[1:-1]}" />\n'
    "  </body>\n"
    "</html>\n"
)

image = eletter.BytesAttachment.from_file(
    "roasted-asparagus.jpg",
    inline=True,
    content_id=asparagus_cid,
)

msg = (text | (html ^ image)).compose(
    subject="Ayons asperges pour le déjeuner",
    from_=eletter.Address("Pepé Le Pew", "pepe@example.com"),
    to=[
        eletter.Address("Penelope Pussycat", "penelope@example.com"),
        eletter.Address("Fabrette Pussycat", "fabrette@example.com"),
    ],
)

项目详情


下载文件

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

源分布

eletter-0.5.0.tar.gz (65.4 kB 查看哈希值)

上传时间

构建分布

eletter-0.5.0-py3-none-any.whl (17.8 kB 查看哈希值)

上传时间 Python 3

由以下支持