跳转到主要内容

多种电子邮件方法的通用接口

项目描述

Project Status: Active — The project has reached a stable, usable state and is being actively developed. CI Status coverage pyversions MIT License

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

outgoing提供对多种不同的电子邮件发送方法(SMTP、sendmail、mbox等)的通用接口。只需从配置文件或对象中构建一个发送者,传递一个EmailMessage实例,然后让神奇的网络守护进程处理其他事情。

outgoing本身仅提供基本发送方法的支持;其他方法由扩展包提供。

有关更多信息,请参阅文档

安装

outgoing需要Python 3.8或更高版本。只需使用Python 3的pip安装outgoing及其依赖项

python3 -m pip install outgoing

示例

示例配置文件

[outgoing]
method = "smtp"
host = "mx.example.com"
ssl = "starttls"
username = "myname"
password = { file = "~/secrets/smtp-password" }

基于配置文件发送电子邮件

from email.message import EmailMessage
import outgoing

# Construct an EmailMessage object the standard Python way:
msg = EmailMessage()
msg["Subject"] = "Meet me"
msg["To"] = "my.beloved@love.love"
msg["From"] = "me@here.qq"
msg.set_content(
    "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"
)

# Construct a sender object based on the default config file (assuming it's
# populated)
with outgoing.from_config_file() as sender:
    # Now send that letter!
    sender.send(msg)

作为使用配置文件之外的替代方案,您可以通过传递配置结构到 outgoing.from_dict() 方法来显式指定配置,如下所示

from email.message import EmailMessage
import outgoing

# Construct an EmailMessage object using the eletter library
# <https://github.com/jwodder/eletter>:
from eletter import compose

msg1 = compose(
    subject="No.",
    to=["me@here.qq"],
    from_="my.beloved@love.love",
    text=(
        "Hot pockets?  Thou disgusteth me.\n"
        "\n"
        "Pineapple pizza or RIOT.\n"
    ),
)

msg2 = compose(
    subject="I'd like to place an order.",
    to=["pete@za.aa"],
    from_="my.beloved@love.love",
    text="I need the usual.  Twelve Hawaiian Abominations to go, please.\n",
)

SENDING_CONFIG = {
    "method": "smtp",
    "host": "smtp.love.love",
    "username": "my.beloved",
    "password": {"env": "SMTP_PASSWORD"},
    "ssl": "starttls",
}

with outgoing.from_dict(SENDING_CONFIG) as sender:
    sender.send(msg1)
    sender.send(msg2)

项目详情


下载文件

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

源分发

outgoing-0.6.1.tar.gz (34.5 kB 查看哈希值)

上传时间

构建分发

outgoing-0.6.1-py3-none-any.whl (19.4 kB 查看哈希值)

上传时间 Python 3