初始版本,工具基础类
This commit is contained in:
121
examples/email_example.go
Normal file
121
examples/email_example.go
Normal file
@@ -0,0 +1,121 @@
|
||||
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
|
||||
|
||||
<html>
|
||||
<body>
|
||||
<h1>这是原始邮件内容</h1>
|
||||
<p>由外部完全控制邮件格式和内容</p>
|
||||
</body>
|
||||
</html>
|
||||
`)
|
||||
|
||||
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>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
</head>
|
||||
<body>
|
||||
<h1>欢迎使用邮件服务</h1>
|
||||
<p>这是一封HTML格式的邮件。</p>
|
||||
<p>支持<strong>富文本</strong>格式。</p>
|
||||
</body>
|
||||
</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>
|
||||
<body>
|
||||
<h1>这是HTML正文</h1>
|
||||
<p>支持同时发送纯文本和HTML版本。</p>
|
||||
</body>
|
||||
</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.")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user