今天在项目上遇到一个问题,项目上使用gomail库进行邮件的发送,在自己电脑上测试是可以正常发送邮件的,但是要上线的前一天,进行了上线部署测试,结果发送邮件的功能一直报错,通过谷歌找到了解决方法。

报 错 信 息 为 : x 509 : c e r t i f i c a t e s i g n e d b y u n k n o w n a u t h o r i t y \color{red}{报错信息为:x509: certificate signed by unknown authority} 报错信息为:x509:certificatesignedbyunknownauthority
解决方法是在发送邮件前将TLSConfig中的InsecureSkipVerify设置为true,下面是一个damo:

func main() {
	Title := fmt.Sprintf("Send Email Test %s", time.Now().Format("2006/01/02 15:04"))
	m := gomail.NewMessage()
	m.SetHeader(`From`, "wangzhen2@sensetime.com")
	m.SetHeader(`To`, "wangzhen2@sensetime.com")
	m.SetHeader(`Subject`, Title)
	// 下面的配置改成你自己的邮箱配置
	d := gomail.NewDialer("", "", "", "")
	// 修改TLSconfig
	d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
	if err := d.DialAndSend(m); err != nil {
		log.Error(err)
	}
}