go-mail
Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage

欢迎使用 go-mail 文档

GoDoc codecov Go Report Card Crowdin GitHub release 在 Awesome Go 中提到 #go-mail on Discord REUSE status Mastodon Follow buy ma a coffee

go-mail logo

go-mail 是一个易于使用的 Go 库,用于格式化和发送邮件。它使用惯用的 Go 风格,并遵循最佳实践和合理的默认值。该库仅依赖于 Go 标准库。

go-mail 的工作方式类似于编程式电子邮件客户端,并提供了许多您在 MUA 中考虑的标准方法和功能。

特色亮点

仅依赖于标准库

go-mail 不需要任何第三方模块,仅运行在 Go 标准库上

现代、惯用的 Go

我们使用现代和惯用的 Go 标准,遵循最先进的最佳实践和合理的默认值

完整的 TLS 支持

go-mail 支持不同策略的隐式 STARTTLS,以及用于发送邮件服务器的显式 SSL/TLS 的连接

上下文

我们利用 Go 上下文进行更好的控制流和超时/取消处理

SMTP 认证

支持三种常见的 SMTP 认证机制(LOGIN、PLAIN、CRAM-MD5)以及自定义身份验证。

邮件地址验证

go-mail 遵循 RFC5322 并验证提供的邮件地址

常见邮件头支持

go-mail 提供了许多常见邮件头的生成器(Message-ID、Date、Bulk-Precedence、Priority 等)

连接重用

您可以在同一 SMTP 连接上发送多个邮件

附件/嵌入

来自不同来源(本地文件系统、io.Readerembed.FS)的附件和内联嵌入的完全支持

编码和内容类型

go-mail 支持不同的编码和内容类型

中间件

第三方库的中间件支持,以便更改邮件消息以满足其需求

Sendmail 和文件存储

支持通过本地 sendmail 安装发送邮件消息以及输出到本地文件(例如作为磁盘上的 .eml 文件以在 MUA 中打开它们)

MDN 和 DSN

go-mail 提供了请求 MDN(RFC 8098)和 DSN(RFC 1891)的支持

模板支持

支持 Go 的 html/templatetext/template(作为消息正文、替代部分或附件/嵌入)

DKIM 支持

通过 go-mail-middlware/dkim 中间件的 DKIM 签名支持

调试日志记录

支持 SMTP 客户端将任何 SMTP 通信记录到 STDERR 以进行调试目的

自定义交付错误

使用 SendError 类型,用户可以获取有关交付错误的详细信息,包括错误是否为临时性质

支持

我们在 Discord 上有一个支持和一般讨论频道。找到我们:#go-mail