golang:send mail using smtp package
go语言发送邮件,可以使用smtp包,两个关键函数:
func PlainAuth(identity, username, password, host string) Auth func SendMail(addr string, a Auth, from string, to []string, msg []byte) error
刚开始玩的时候,很好奇邮件的title是怎么设置进去的,毕竟从代码没看见有setTitle。后来发现是解析msg获取标题、发件人、收件人、邮件格式、邮件内容等;因此msg需要按一定格式写:To: xxx\r\nFrom:xxxx\r\nSubject: xxxx\r\nContent-Type:text/html; charset=UTF-8\r\n\r\n[邮件内容]
func (this *TestController) SendMail(){
subject := "This is golang test email..."
user := "xxxxx@163.com"
to := []string {"xxxxx@163.com"}
nickname := "dyao"
content := "mail body....."
contentType := "Content-Type: text/html; charset=UTF-8"
msg := []byte("To: " + strings.Join(to, ",") + "\r\nFrom: " + nickname + "<" + user + ">\r\nSubject: " + subject + "\r\n" + contentType + "\r\n\r\n" + content)
auth := smtp.PlainAuth(
"",
user,
"testpassword",
"smtp.163.com",
)
err := smtp.SendMail(
"smtp.163.com:25",
auth,
user,
to,
[]byte(msg),
)
if err != nil{
log.Fatal(err)
}else {
log.Printf("Mail send:\r\n%s", msg)
}
}
===================2018/01/18=======================
163邮箱,把发送的邮件当垃圾拦截了,今天打算换qq邮箱,被坑到怀疑人生....
密码,不是qq登陆密码,是授权码!授权码!授权码!授权码!
授权码,在qq邮箱设置里面获取,会发送到手机上
golang:send mail using smtp package的更多相关文章
- mailsend - Send mail via SMTP protocol from command line
Introduction mailsend is a simple command line program to send mail via SMTP protocol. I used to sen ...
- 发送邮件的三种方式:Send Mail Message
发送邮件的三种方式: 1.VBS 执行vbs脚本文件的程序为: system32文件下的 NameSpace = "http://schemas.microsoft.com/cdo/conf ...
- linux中php项目无法发送邮件:PEAR mail package is not installed
发送邮件报错误:PEAR mail package is not installed的原因是linux中缺少PEAR mail组件, PEAR mail组件也就是PHP Pear Mail / SMT ...
- golang引用第三方包的报错:no required module provides package [完美解决]
关于golang第三方包的引用报错:no required module provides package : go.mod file not found in current directory o ...
- SSIS Send Mail
在SSIS中Send Mail的方法主要有三种,使用Send Mail Task,使用Script Task和使用存储过程msdb.dbo.sp_send_dbmail. 一,使用Send Mail ...
- Java发邮件:Java Mail与Apache Mail
作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例 ...
- 协议基础:SMTP:使用Telnet学习SMTP协议
协议基础:SMTP:使用Telnet学习SMTP协议 2018-07-30 20:05:50 liumiaocn 阅读数 7479更多 分类专栏: 工具 Unix/Linux 版权声明:本文为博主 ...
- How to attach multiple files in the Send Mail Task in SSIS
Let’s say you need to create a SSIS package that creates 2 files and emails the files to someone. Yo ...
- 排错-tcpreplay回放错误:send() [218] Message too long (errno = 90)
排错-tcpreplay回放错误:send() [218] Message too long (errno = 90) by:授客 QQ:1033553122 问题描述: tcpreplay回放.pc ...
随机推荐
- Redis持久化实践及灾难恢复模拟 [转]
参考资料:Redis Persistence http://redis.io/topics/persistenceGoogle Groups https://groups.google.com/for ...
- C#创建自定义Object对象
, B=,J=}; 记录一下,老写成 var obj = new object() { O=0, B=0,J=0};
- 筛选法求n以内所有的素数
求n以内所有的素数? 筛选法:将2到n中所有的数都列出来,然后从2开始,先化掉所有2的倍数,然后每次从下一个剩下的数(必然是素数)开始,划掉其内所有的倍数,最后剩下来的数就都是素数 例:13 红色为 ...
- Zookeeper的集群安装
Zookeeper的集群安装 关闭防火墙 安装jdk 下载Zookeeper的安装包 解压Zookeeper的安装包 进入Zookeeper的安装目录中conf目录 将zoo_sample.cfg复制 ...
- 字符串分割split()
知识讲解: split() 方法将字符串分割为字符串数组,并返回此数组. 语法: stringObject.split(separator,limit) 参数说明: 注意:如果把空字符串 (" ...
- Oracle group by
group by 简单点理解就是根据什么分组 为此 group by job 根据job进行分组 举例:在Oracle当中scott/oracle 下有emp表 进行如下操作 体会order b ...
- [UE4]子弹穿透多个机器人
一.将机器人的碰撞类型改成“OverLap” 二.使用“MultiLineTraceByChannel”这个是可以穿透检测,可以检测到多个物体(前提是被检测物体的碰撞类型是“OverLap”).“Li ...
- mysql 5.7主从库复制设置
先要修改配置文件,重启mysql服务 log-bin= mysql-binlog # 打开二进制日志 ,最好放在不同的硬盘上,减小 IO 消耗 expire_logs_day= # 设置二进制日志保存 ...
- lua开发
1:安装luaBridge git地址 https://github.com/vinniefalco/LuaBridge.git 2:编写程序 #include <lua.hpp> #in ...
- 图解RabbitMQ
花点时间重新把rabbitMQ的整体流程粗略的梳理了一遍,便于理解.总体来说,消息产生者->queue->消息消费者可以图解如下: 文字解说:消息产生者 producter 和 consu ...