1.用gopkg.in/gomail.v2包 发送邮件表格代码如下:
package main
import (
"fmt"
"gopkg.in/gomail.v2"
_ "html/template"
)
var mailConfig = map[string]string{
"MAIL_SMTP_HOST": "xx", // 服务器地址
"MAIL_USER": "xx", // 发件人的邮箱地址
"MAIL_PASS": "xx", // 口令
"ME": "", // 不填
}
const MailMess = // 定义邮件表格样式
`<style>
table {
border-collapse: collapse;
}
th {
background-color: #007fff;
color: white;
}
table, th, td {
border: 1px solid black;
padding: 5px;
text-align: left;
}
</style>
<table>
<tr>
<th>集群号</th>
<th>所属业务</th>
<th>源库</th>
<th>源表</th>
<th>目标库</th>
<th>目标表</th>
<th>插入行数</th>
<th>删除行数</th>
<th>avg_row_length</th>
<th>消耗时间</th>
</tr>`
func FormShow (resStruct []models.RuleWithBusinessForm ) { // 调用接口传过来的数据,拼接表格
var mailMessage = MailMess
for _,value := range resStruct {
mailMessage = mailMessage + fmt.Sprintf("<td>%v</td><td>%v</td><td>%v</td><td>%v</td><td>%v</td><td>%v</td><td>%v</td><td>%v</td><td>%v</td><td>%v</td></tr>",
value.ClusterId, value.BusinessNode, value.SourceDb, value.SourceTb, value.DestDb, value.DestTb, value.Inserted, value.Deleted, value.AvgRowLength, value.TimeConsuming)
}
mailMessage = mailMessage + "</table><br></br><br>Send By [email protected]</br>(自动发送请勿回复)"
DayEmail(mailMessage) //拼接完成后,调用函数发送邮件
}
func DayEmail(mailMess string) { // 发送邮件
m := gomail.NewMessage()
m.SetHeader("From", mailConfig["MAIL_USER"]) //发件人
m.SetHeader("To", MailToUser) //收件人
//m.SetAddressHeader("Cc", "[email protected]", "test") //抄送人
m.SetHeader("Subject", "xxxxx") //邮件标题
m.SetBody("text/html", mailMess) //邮件内容
//m.Attach("E:\\IMGP0814.JPG") //邮件附件
d := gomail.Dialer{Host: mailConfig["MAIL_SMTP_HOST"], Port: 25, Username:mailConfig["MAIL_USER"], Password: mailConfig["MAIL_PASS"], SSL: false, TLSConfig: xxx}
//邮件发送服务器信息,使用授权码而非密码
if err := d.DialAndSend(m); err != nil {
log.Error(err)
}
}
funct main () {
FormShow(recSLice) // 传进去的是[]struct的切片
}
2.邮件显示:
3.常用邮箱
列举一些常用的邮箱,可以用来测试:
QQ 邮箱
POP3 服务器地址:qq.com(端口:995)
SMTP 服务器地址:smtp.qq.com(端口:465/587)
163 邮箱:
POP3 服务器地址:pop.163.com(端口:110)
SMTP 服务器地址:smtp.163.com(端口:25)
126 邮箱:
POP3 服务器地址:pop.126.com(端口:110)
SMTP 服务器地址:smtp.126.com(端口:25)