gomail 发邮件
gomail 发邮件
package main
import (
"crypto/tls"
"fmt"
"log"
"strconv"
"gopkg.in/gomail.v2"
)
func SendMail(mailTo []string, subject string, body string) error {
// 设置邮箱主体
mailConn := map[string]string{
"user": "x", // 发件人
"pass": "x", // 发件人密码或者授权码
"host": "smtp.x.cn", // 邮箱地址
"port": "465", // 邮箱端口
}
port, _ := strconv.Atoi(mailConn["port"])
m := gomail.NewMessage()
m.SetHeader("From", m.FormatAddress(mailConn["user"], "xx官方")) // 添加别名
m.SetHeader("To", mailTo...) // 发送给用户(可以多个)
m.SetHeader("Cc", "******@qq.com") // 抄送,可以多个
m.SetHeader("Bcc", "******@qq.com") // 暗送,可以多个
m.SetHeader("Subject", subject) // 设置邮件主题
m.SetBody("text/html", body) // 设置邮件正文
// m.Attach("./myIpPic.png") //附件
d := gomail.NewDialer(mailConn["host"], port, mailConn["user"], mailConn["pass"]) // 设置邮件正文
d.TLSConfig = &tls.Config{InsecureSkipVerify: true} // 解决证书x509报错
err := d.DialAndSend(m)
return err
}
func main() {
// 发送方
mailTo := []string{
"x<x@x.cn>", // 这里最好写成邮箱收发件时的这种标记格式
}
// 邮件主题
subject := "Hello"
// 邮件正文
body := "Automatic send by Go gomail from xxx官方."
err := SendMail(mailTo, subject, body)
if err != nil {
log.Print(err)
fmt.Printf("Send fail!")
return
}
fmt.Printf("send successfully!")
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)