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的更多相关文章

  1. 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 ...

  2. 发送邮件的三种方式:Send Mail Message

    发送邮件的三种方式: 1.VBS 执行vbs脚本文件的程序为: system32文件下的 NameSpace = "http://schemas.microsoft.com/cdo/conf ...

  3. linux中php项目无法发送邮件:PEAR mail package is not installed

    发送邮件报错误:PEAR mail package is not installed的原因是linux中缺少PEAR mail组件, PEAR mail组件也就是PHP Pear Mail / SMT ...

  4. golang引用第三方包的报错:no required module provides package [完美解决]

    关于golang第三方包的引用报错:no required module provides package : go.mod file not found in current directory o ...

  5. SSIS Send Mail

    在SSIS中Send Mail的方法主要有三种,使用Send Mail Task,使用Script Task和使用存储过程msdb.dbo.sp_send_dbmail. 一,使用Send Mail ...

  6. Java发邮件:Java Mail与Apache Mail

    作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例 ...

  7. 协议基础:SMTP:使用Telnet学习SMTP协议

    协议基础:SMTP:使用Telnet学习SMTP协议 2018-07-30 20:05:50 liumiaocn 阅读数 7479更多 分类专栏: 工具 Unix/Linux   版权声明:本文为博主 ...

  8. 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 ...

  9. 排错-tcpreplay回放错误:send() [218] Message too long (errno = 90)

    排错-tcpreplay回放错误:send() [218] Message too long (errno = 90) by:授客 QQ:1033553122 问题描述: tcpreplay回放.pc ...

随机推荐

  1. JVM 专题

    未完待续>>> JVM - 整体结构 摘抄自:<分布式java应用基础与实践>-第三章 JVM - 内存 对上图各部分的概要解释: JVM - GC 详情参考: http ...

  2. PyQt5显示一个空白的窗口

    效果如下图: """ In this example, we create a simple window in PyQt5. """ # ...

  3. php的语法

    常量:不变的量: php 设置常量的方法:define()方法: define("常量名","常量的值",true) 参数三:大小写是否敏感: php中的常量, ...

  4. maven之BOM及BOM和provided的一个小坑

    BOM(Bill of Materials)定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号.BOM的维护方负责版本升级,并保证 ...

  5. centos6.5远程桌面连接(VNC\SPice)

    在Linux下用vnc远程桌面,centos中默认没有安装VNC 查询系统是否安装VNC # rpm -q tigervnc tigervnc-server 安装VNC服务 # yum install ...

  6. WireGuard协议介绍

    原文: https://www.jianshu.com/p/32c3e62c2711

  7. Java基础知识_毕向东_Java基础视频教程笔记(14-18集合框架)

    14天-01-集合框架集合类出现:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.数组与集合类同是容器,有何不同? 数组长度 ...

  8. adversarial example研究

    Paper: Practical Black-Box Attacks against Machine Learning 一.介绍 概况:Ian Goodfellow大神研究如何在不知道model内部结 ...

  9. (转)C# WebApi 跨域问题解决方案:CORS

    原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2. ...

  10. spring boot controller设置 @Transactional 不回滚的解决办法

    @Transactional @ApiOperation(value = "添加一个用户信息") @RequestMapping(value = "/create&quo ...