gomail

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

gomail: 在 Go 中发送电子邮件

gomail 是一个功能强大且易于使用的库,用于在 Go(Golang)语言中发送电子邮件。它提供了一个便捷的接口来创建和发送邮件,支持附件、HTML 模板、多个收件人以及通过 SMTP 进行身份验证。该库受到社区的积极维护,是 Go 生态系统中处理电子邮件的标准解决方案之一。

为什么需要 gomail?

发送电子邮件是 Web 应用程序中的常见任务:用户注册、密码重置、通知、群发邮件。Go 的标准库(net/smtp)提供了基本功能,但需要大量手动工作:编码附件、生成 MIME 标头、处理 HTML 模板。gomail 承担了所有这些复杂性,让您可以专注于应用程序逻辑。

安装

使用标准的 go get 命令进行安装:

go get gopkg.in/gomail.v2

要在项目中使用,请导入该包:

import "gopkg.in/gomail.v2"

主要功能

  • 简单发送:用最少的代码发送纯文本或 HTML 邮件。
  • 支持附件:可以附加文件(图片、PDF、文档)。
  • 多个收件人:支持 To、Cc、Bcc。
  • HTML 和文本:支持 multipart/alternative 邮件。
  • 身份验证:支持 LOGIN、PLAIN、CRAM-MD5。
  • 自定义标头:可以添加自己的标头(Reply-To、Message-ID 等)。
  • 邮件组:方便批量发送。

Go(Golang)代码示例

以下是通过 Gmail 的 SMTP 服务器发送带有 HTML 内容和附件的完整示例:

package main

import ( "gopkg.in/gomail.v2" "log")

func main() { m := gomail.NewMessage() m.SetHeader("From", "youremail@gmail.com") m.SetHeader("To", "recipient@example.com") m.SetHeader("Subject", "来自 Go 的问候!") m.SetBody("text/html", "<h1>您好!</h1><p>这是一封测试邮件。</p>") m.Attach("/path/to/file.pdf")

d := gomail.NewDialer("smtp.gmail.com", 587, "youremail@gmail.com", "yourpassword")

if err := d.DialAndSend(m); err != nil { log.Fatal(err) } log.Println("邮件发送成功")}

何时使用 gomail?

  • 当需要可靠地发送带有附件和 HTML 格式的邮件时。
  • 在创建需要集成电子邮件通知的 Go 服务器应用程序时。
  • 用于批量群发邮件(使用连接池)。
  • 如果您厌倦了手动编码 MIME,并希望拥有干净、可读的代码。

gomail 库是任何需要发送电子邮件的 Go 项目的绝佳选择。它简单、有文档记录,并且经过测试覆盖。

推荐