欢迎使用 go-mail 文档
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.Reader
或 embed.FS
)的附件和内联嵌入的完全支持
编码和内容类型
go-mail 支持不同的编码和内容类型
中间件
第三方库的中间件支持,以便更改邮件消息以满足其需求
Sendmail 和文件存储
支持通过本地 sendmail 安装发送邮件消息以及输出到本地文件(例如作为磁盘上的 .eml
文件以在 MUA 中打开它们)
MDN 和 DSN
go-mail 提供了请求 MDN(RFC 8098)和 DSN(RFC 1891)的支持
模板支持
支持 Go 的 html/template
和 text/template
(作为消息正文、替代部分或附件/嵌入)
DKIM 支持
通过 go-mail-middlware/dkim 中间件的 DKIM 签名支持
调试日志记录
支持 SMTP 客户端将任何 SMTP 通信记录到 STDERR 以进行调试目的
自定义交付错误
使用 SendError
类型,用户可以获取有关交付错误的详细信息,包括错误是否为临时性质
支持
我们在 Discord 上有一个支持和一般讨论频道。找到我们:#go-mail