Go发送Gmail邮件
一、创建Gmail应用专用密码
官方教程已经很详细了(附链接,需科学上网查看)
创建应用专用密码教程
注意:创建时选择其他,不要选mail。
创建完成后先记录应用专用密码,下面代码中会用到。
二、代码实现
package gmailimport ("crypto/tls""fmt""log""net/smtp"
)type mail struct {user stringpasswd string
}func check(err error) {if err != nil {log.Panic(err)}
}//初始化用户名和密码
func New(u string, p string) mail {temp := mail{user: u, passwd: p}return temp
}//标题 文本 目标邮箱
func (m mail) Send(title string, text string, toId string) {auth := smtp.PlainAuth("", m.user, m.passwd, "smtp.gmail.com")tlsconfig := &tls.Config{InsecureSkipVerify: true,ServerName: "smtp.gmail.com",}conn, err := tls.Dial("tcp", "smtp.gmail.com:465", tlsconfig)check(err)client, err := smtp.NewClient(conn, "smtp.gmail.com")check(err)if err = client.Auth(auth); err != nil {log.Panic(err)}if err = client.Mail(m.user); err != nil {log.Panic(err)}if err = client.Rcpt(toId); err != nil {log.Panic(err)}w, err := client.Data()check(err)msg := fmt.Sprintf("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s", m.user, toId, title, text)_, err = w.Write([]byte(msg))check(err)err = w.Close()check(err)client.Quit()
}
调用
func main() {//u:邮箱账号 p:刚才生成的专用密码foo := gmail.New("yu*******@gmail.com", "ly***ouy****ehe")//title:邮件标题 text:邮件内容 told:发送到的邮箱foo.Send("ceshi", "*********", "pa**yu****@163.com")
}
Go发送Gmail邮件相关推荐
- 在Delphi中使用indy SMTP发送gmail邮件[转]
在Delphi中使用indy SMTP发送gmail邮件[转] 2012-01-01 22:44:30| 分类: Delphi | 标签: |举报 |字号大中小 订阅 在Delphi中发送emai ...
- java发送gmail邮件_如何从R和Gmail发送电子邮件
java发送gmail邮件 在您的R人生的某个时刻,您可能希望与不使用R的同事共享分析结果. 有很多方法可以做到这一点. 最简单(也是最便宜)的方法之一是通过电子邮件发送结果. 但它是一种悲哀自动化您 ...
- JAVA 发送GMAIL 邮件
JAVA发送GMAIL邮件 废话不多说 上代码 不懂的方法可以百度 都有 package com.pos.pos_conn.util.email;import java.util.Propert ...
- python 谷歌登录_用Python登录Gmail并发送Gmail邮件的教程
这篇快文介绍了使用Gmail作为您的e-mail服务器,通过Python的内置SMTP库发送电子邮件.它并不复杂,我保证. 下面是如何在Python中登录GMail: import smtplib # ...
- 使用java代码发送gmail邮件
步骤一:首先需要在google账号里开启两步验证,如果已经开启,跳过此处,到步骤二. 进去之后跟着提示操作, 步骤二:完成之后出来就会有个应用专用密码 点进去继续跟着提示走,最后任意选了个计算机 生成 ...
- php发送gmail,汇总PHPmailer群发Gmail的常见问题
大家在PHPmailer群发Gmail时会遇到许多常见问题,下面为大家总结了一些常见问题,希望对大家的学习有所帮助. 1.Could not authenticate 首先,如果你没有使用循环的话,基 ...
- C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号.需要引用: using System.Net.Mail; using System.Text; using System.Net;程 ...
- springboot实战,实现发送邮件,gmail邮件,包括发送附件还有正文,以及注意覆盖问题
springboot实现发送邮件,gmail邮件,包括发送附件还有正文,以及注意覆盖问题 复盘下前个把月前写的个关于邮件激活的接口,踩了些坑,就当记录下 前言 `需求:发送邮件审核,点击邮件链接之后, ...
- linux 发送外部邮件
原始链接 http://www.51xpage.com/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%A1%E7%90%86/2015/12/10/dao-ting-tu-shu ...
最新文章
- 通讯系统流程图_基于OBD系统的量产车评估测试(PVE)
- HBASE完全分布式安装
- rc mysql common_RR与RC隔离级别下MySQL不同的加锁解锁方式
- Magento 获取原价格和打折价格 get Special price or Regular Price in magento
- 2018-03-28 Linux学习
- Python基础知识 D2
- datatable java排序,Java实现DataTable的过滤,排序,聚合功能
- Atitit 技术经理职责与流程表总结
- 不知道怎样计算权重?告诉你8种确定权重方法
- 学习新浪微博计数服务
- PE下安装win XP 64位实战
- Raisecom 交换机防止ARP欺骗攻击及防止多个DHCP服务器方法
- dimens文件生成器
- 企业微信 php sdk,thinkphp5.0集成企业微信SDK
- 6.4.2.时序逻辑测试模块
- The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
- tomcat 虚拟目录配置appBase和docBase的区别 导致redis session异常SEVERE: Unable to deserialize into session
- 高速计数器转RS485Modbus RTU模块IBF150
- 浅析:宝贝标题关键词优化技巧
- Java实现表格打印翻页_简单又实用的小文章来了----表格分页打印的那些小事(2)...