52 lines
1.9 KiB
Go
52 lines
1.9 KiB
Go
// quickstart 是最简单的 mailx 入门示例。
|
||
//
|
||
// 功能:用 QQ 邮箱 SMTP 发送一封纯文本邮件。
|
||
//
|
||
// 怎么运行:
|
||
// 1. 在 QQ 邮箱「设置 -> 账户」中开启 SMTP,获取授权码(不是 QQ 密码)
|
||
// 2. 把下方 main.go 里的 4 个配置改成你自己的
|
||
// 3. 在本目录执行:go run main.go
|
||
//
|
||
// 参考:https://mail.qq.com 开启 SMTP 服务的授权码获取方法
|
||
package main
|
||
|
||
import (
|
||
"context"
|
||
"fmt"
|
||
|
||
"code.yun.ink/pkg/mailx" // mailx 核心包:消息构建 + Sender 接口
|
||
"code.yun.ink/pkg/mailx/smtp" // smtp 通道:基于 SMTP 协议发送
|
||
)
|
||
|
||
func main() {
|
||
// context 用于控制发送的超时与取消,先创建空背景 context
|
||
ctx := context.Background()
|
||
|
||
// ===== 第 1 步:创建发送通道 =====
|
||
// smtp.New 接收一个 smtp.Config 配置,返回一个发送通道实例
|
||
client := smtp.New(smtp.Config{
|
||
Host: "smtp.qq.com", // SMTP 服务器地址
|
||
Port: 587, // 端口:465 走 SSL,587 走 STARTTLS
|
||
User: "sender@qq.com", // 你的 QQ 邮箱地址
|
||
Password: "your-auth-code", // 授权码(QQ 邮箱后台开启 SMTP 后获取)
|
||
// From: "sender@qq.com", // 可选:默认发件人,不填则用上面的 User
|
||
})
|
||
|
||
// ===== 第 2 步:构建邮件消息 =====
|
||
// 使用链式调用(builder 模式),一行一个字段,最后 Build() 生成消息
|
||
msg := mailx.NewMessage().
|
||
From("sender@qq.com"). // 发件人(可带显示名,如 "张三" <a@qq.com>)
|
||
To("receiver@example.com"). // 收件人,可传多个:To("a@x.com", "b@x.com")
|
||
Subject("hello from mailx"). // 邮件主题
|
||
Text("This is a plain text email."). // 纯文本正文
|
||
Build() // 生成 *Message
|
||
|
||
// ===== 第 3 步:发送 =====
|
||
// 传入 ctx 和消息,返回 error(nil 表示成功)
|
||
if err := client.Send(ctx, msg); err != nil {
|
||
fmt.Println("send failed:", err)
|
||
return
|
||
}
|
||
fmt.Println("send success")
|
||
}
|