| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package mail
- import (
- "sync"
- "github.com/runningwater/gohub/pkg/config"
- )
- // To 收件人邮箱列表
- type To []string
- // From 发件人信息
- type From struct {
- Address string // 邮箱地址
- Name string // 发件人名称(可选)
- }
- // Email 邮件内容结构
- type Email struct {
- From From // 发件人
- To To // 主送人
- Bcc To // 密送人
- Cc To // 抄送人
- Subject string // 邮件主题
- Text []byte // 纯文本正文
- HTML []byte // HTML格式正文
- Attachments []string // 附件路径列表
- }
- // Mailer 邮件发送器
- type Mailer struct {
- Driver Driver // 邮件驱动实现(SMTP/Mailgun等)
- }
- var once sync.Once
- var mailer *Mailer
- // NewMailer 创建邮件发送器单例
- func NewMailer() *Mailer {
- once.Do(func() {
- mailer = &Mailer{
- Driver: &SMTP{}, // 默认使用 SMTP 驱动
- }
- })
- return mailer
- }
- // Send 使用配置的驱动发送邮件
- // 返回值 bool 表示是否发送成功
- func (m *Mailer) Send(email Email) bool {
- return m.Driver.Send(email, config.GetStringMapString("mail.smtp"))
- }
|