Go Simple Mail 项目教程
1. 项目的目录结构及介绍
Go Simple Mail 项目的目录结构如下:
go-simple-mail/
├── LICENSE
├── README.md
├── attach.go
├── attach_old.go
├── attach_test.go
├── auth.go
├── email.go
├── email_test.go
├── go.mod
├── go.sum
├── header.go
├── header_test.go
├── message.go
├── smtp.go
├── smtp_test.go
└── example/
└── main.go
目录结构介绍
LICENSE
: 项目许可证文件。README.md
: 项目说明文档。attach.go
: 处理附件的代码文件。attach_old.go
: 旧版本的附件处理代码文件。attach_test.go
: 附件处理代码的测试文件。auth.go
: 处理SMTP认证的代码文件。email.go
: 处理邮件内容的代码文件。email_test.go
: 邮件内容处理代码的测试文件。go.mod
: Go模块文件,定义项目的依赖。go.sum
: Go模块的校验和文件。header.go
: 处理邮件头的代码文件。header_test.go
: 邮件头处理代码的测试文件。message.go
: 处理邮件消息的代码文件。smtp.go
: 处理SMTP连接的代码文件。smtp_test.go
: SMTP连接处理代码的测试文件。example/
: 示例代码目录,包含使用该包的示例程序。
2. 项目的启动文件介绍
项目的启动文件位于 example/main.go
,该文件展示了如何使用 Go Simple Mail 包发送邮件。
启动文件内容
package main
import (
"log"
mail "github.com/xhit/go-simple-mail/v2"
"time"
)
func main() {
server := mail.NewSMTPClient()
server.Host = "smtp.example.com"
server.Port = 587
server.Username = "your-email@example.com"
server.Password = "your-email-password"
server.Encryption = mail.EncryptionTLS
server.KeepAlive = true
server.ConnectTimeout = 10 * time.Second
server.SendTimeout = 10 * time.Second
smtpClient, err := server.Connect()
if err != nil {
log.Fatal(err)
}
email := mail.NewMSG()
email.SetFrom("From Me <your-email@example.com>").
AddTo("recipient@example.com").
SetSubject("Email with Attachment")
email.SetBody(mail.TextHTML, "<h1>This email contains an attachment</h1>")
email.AddAttachment("path/to/file.pdf")
err = email.Send(smtpClient)
if err != nil {
log.Println(err)
} else {
log.Println("Email Sent")
}
}
启动文件介绍
server := mail.NewSMTPClient()
: 创建一个新的SMTP客户端实例。server.Host
,server.Port
,server.Username
,server.Password
: 配置SMTP服务器的主机、端口、用户名和密码。server.Encryption
: 设置加密方式,支持TLS和SSL。server.KeepAlive
: 设置保持连接。server.ConnectTimeout
,server.SendTimeout
: 设置连接和发送的超时时间。smtpClient, err := server.Connect()
: 连接到SMTP服务器。email := mail.NewMSG()
: 创建一个新的邮件消息实例。email.SetFrom()
,email.AddTo()
,email.SetSubject()
: 设置邮件的发件人、收件人和主题。email.SetBody()
: 设置邮件正文。email.AddAttachment()
: 添加邮件附件。email.Send(smtpClient)
: 发送邮件。
3. 项目的配置文件介绍
Go Simple Mail 项目没有独立的配置文件,所有的配置都在代码中进行。如上文所示,配置信息包括