package main import ( "fmt" "log" "github.com/go-common/config" "github.com/go-common/email" ) func main() { // 加载配置 cfg, err := config.LoadFromFile("./config/example.json") if err != nil { log.Fatal("Failed to load config:", err) } // 创建邮件发送器 emailConfig := cfg.GetEmail() if emailConfig == nil { log.Fatal("Email config is nil") } mailer, err := email.NewEmail(emailConfig) if err != nil { log.Fatal("Failed to create email client:", err) } // 示例1:发送原始邮件内容(推荐,最灵活) fmt.Println("=== Example 1: Send Raw Email Content ===") // 外部构建完整的邮件内容(MIME格式) emailBody := []byte(`From: ` + emailConfig.From + ` To: recipient@example.com Subject: 原始邮件测试 Content-Type: text/html; charset=UTF-8
由外部完全控制邮件格式和内容
`) err = mailer.SendRaw( []string{"recipient@example.com"}, emailBody, ) if err != nil { log.Printf("Failed to send raw email: %v", err) } else { fmt.Println("Raw email sent successfully") } // 示例2:发送简单邮件(便捷方法) fmt.Println("\n=== Example 2: Send Simple Email ===") err = mailer.SendSimple( []string{"recipient@example.com"}, "测试邮件", "这是一封测试邮件,使用Go标准库发送。", ) if err != nil { log.Printf("Failed to send email: %v", err) } else { fmt.Println("Email sent successfully") } // 示例3:发送HTML邮件 fmt.Println("\n=== Example 3: Send HTML Email ===") htmlBody := `这是一封HTML格式的邮件。
支持富文本格式。
` err = mailer.SendHTML( []string{"recipient@example.com"}, "HTML邮件测试", htmlBody, ) if err != nil { log.Printf("Failed to send HTML email: %v", err) } else { fmt.Println("HTML email sent successfully") } // 示例4:发送完整邮件(包含抄送、密送) fmt.Println("\n=== Example 4: Send Full Email ===") msg := &email.Message{ To: []string{"to@example.com"}, Cc: []string{"cc@example.com"}, Bcc: []string{"bcc@example.com"}, Subject: "完整邮件示例", Body: "这是纯文本正文", HTMLBody: `支持同时发送纯文本和HTML版本。
`, } err = mailer.Send(msg) if err != nil { log.Printf("Failed to send full email: %v", err) } else { fmt.Println("Full email sent successfully") } fmt.Println("\nNote: Make sure your email configuration is correct and SMTP service is enabled.") }