Files

51 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2026-08-15 01:38:05 +08:00
# mailx 使用示例
本目录包含多个由浅入深的示例,方便快速接入。
## 示例总览
| 示例 | 难度 | 说明 |
| --- | --- | --- |
| [`quickstart`](./quickstart) | 入门 | 最简 SMTP 发送,逐行注释,适合第一次接触 |
| [`basic`](./basic) | 入门 | 单通道直接发送,含附件/抄送/回复地址 |
| [`manager`](./manager) | 入门 | 多通道管理器:注册、路由、默认通道、临时指定配置 |
| [`with_env`](./with_env) | 进阶 | 用环境变量管理多通道凭据,避免密钥写死在代码里 |
| [`advanced`](./advanced) | 进阶 | 主备切换、实例遍历、日志注入、超时、内嵌图片、错误分类 |
| [`custom_sender`](./custom_sender) | 进阶 | 实现自定义通道 + 自定义 Logger |
## 快速开始(5 分钟)
```bash
# 1. 进入最简示例
cd examples/quickstart
# 2. 打开 main.go,把里面的 4 个 SMTP 配置改成你自己的
# (QQ 邮箱需先开启 SMTP 服务并获取授权码)
# 3. 运行
go run main.go
```
看到 `send success` 即表示发送成功。
## 运行方式
所有示例都在 mailx 主模块内,直接在示例目录执行 `go run .` 即可:
```bash
# 示例:运行多通道管理器示例
cd examples/manager
go run .
# 示例:运行环境变量示例(先配置好 .env)
cd examples/with_env
go run .
```
## 注意事项
1. **凭据**:所有示例中的密钥都是占位符,运行前必须替换为真实值
2. **SMTP 授权码**:QQ/163 等邮箱不是用邮箱登录密码,而是需要在邮箱后台开启 SMTP 服务后生成的授权码
3. **AWS/阿里云**:需要先完成服务开通、域名验证(发件地址需为已验证身份)
4. **`.env`**`with_env` 示例依赖 `github.com/joho/godotenv`,首次运行前执行 `go get github.com/joho/godotenv``with_env/.env` 含敏感信息,勿提交 git