gomail 发送邮件

官方简单示例:

m := gomail.NewMessage()
m.SetHeader("From", "alex@example.com")
m.SetHeader("To", "bob@example.com", "cora@example.com")
m.SetAddressHeader("Cc", "dan@example.com", "Dan")
m.SetHeader("Subject", "Hello!")
m.SetBody("text/html", "Hello <b>Bob</b> and <i>Cora</i>!")
m.Attach("/home/Alex/lolcat.jpg")

d := gomail.NewDialer("smtp.example.com", 587, "user", "123456")

// Send the email to Bob, Cora and Dan.
if err := d.DialAndSend(m); err != nil {
	panic(err)
}

我的实现示例:

package email

import (
	"crypto/tls"
	"spider/sys"

	"github.com/go-gomail/gomail"
)

/*
发送邮件,content 为发送内容
*/
func Send(content string) {
	m := gomail.NewMessage()
	m.SetHeader("From", sys.EMAIL_NAME)                      // 发件人
	m.SetHeader("To", sys.To...)                             // 收件人
	m.SetAddressHeader("Cc", sys.EMAIL_NAME, "yushanma2021") // 抄送
	m.SetHeader("Subject", sys.SUBJRCT)                      // 邮件标题
	m.SetBody("text/html", content)                          // 邮件内容

	// 使用附件会被认为垃圾邮件
	// panic: gomail: could not send email 1: 554 DT:SPM 163 
	//m.Attach("C:\\Users\\Jack Ma\\Desktop\\20201127180827458.png") //附件

	d := gomail.NewDialer(sys.DIALER, sys.TLS_PORT, sys.EMAIL_NAME, sys.EMAIL_TOKEN) // 代理,端口,用户,授权码
	d.TLSConfig = &tls.Config{InsecureSkipVerify: true}                              // TLS 配置
	// 发送
	if err := d.DialAndSend(m); err != nil {
		panic(err)
	}
}

sys 包:

const EMAIL_NAME = "demo@163.com"
const EMAIL_TOKEN = "demo"
const SUBJRCT = "余衫马官方"
const DIALER = "smtp.163.com"
const PORT = 25
const TLS_PORT = 465

var To = []string{"demo@qq.com"}

测试:

使用附件时,无论图片还是文件,无论是否配置 TLS,都会被认为垃圾邮件:

panic: gomail: could not send email 1: 554 DT:SPM 163

554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;

不过附件偶尔会发送成功:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值