Golang发送邮件-阿里云开发者社区

开发者社区> 潘志闻> 正文

Golang发送邮件

简介: 简述 Go 提供了一个 smtp(Simple Mail Transfer Protocol - 简单邮件传输协议)库作为其网络包的一部分,“net/smtp”公开了一些可立即使用的有用功能。 Gomail - 一个比较成熟的第三方包,提供了一个快速、简单的解决方案,可以轻松地发送电子邮件。 简述 Gomail 特性 使用 常用邮箱 开启服务 Go
+关注继续查看

简述

Go 提供了一个 smtp(Simple Mail Transfer Protocol - 简单邮件传输协议)库作为其网络包的一部分,“net/smtp”公开了一些可立即使用的有用功能。

Gomail - 一个比较成熟的第三方包,提供了一个快速、简单的解决方案,可以轻松地发送电子邮件。

Gomail

Gomail 是一个简单、高效的发送电子邮件包,它经过良好的测试和记录。

Gomail 只能使用 SMTP 服务器发送电子邮件,但是 API 比较灵活的,很容易实现其他方法使用本地 Postfix、API 等发送电子邮件。

项目地址:https://github.com/go-gomail/gomail

文档:https://godoc.org/gopkg.in/gomail.v2

示例:https://godoc.org/gopkg.in/gomail.v2#example-package

特性

Gomail 支持:

  • 附件
  • 嵌入图像
  • HTML 和文本模板
  • 特殊字符的自动编码
  • SSL 和 TLS
  • 使用相同的 SMTP 连接发送多封电子邮件

使用

下载 Gomail,解压缩至 $GOPATH\src(例如:E:\Works\Golang\src),新建并编写 sendMail.go:

package main

import (
    "gomail"
)

func main() {
    m := gomail.NewMessage()
    m.SetAddressHeader("From", "550755606@qq.com", "一去、二三里")  // 发件人
    m.SetHeader("To",  // 收件人
        m.FormatAddress("********@163.com", "乔峰"),
        m.FormatAddress("********@qq.com", "郭靖"),
    )
    m.SetHeader("Subject", "Gomail")  // 主题
    m.SetBody("text/html", "Hello <a href = \"http://blog.csdn.net/liang19890820\">一去丶二三里</a>")  // 正文

    d := gomail.NewPlainDialer("smtp.qq.com", 465, "550755606@qq.com", "*********")  // 发送邮件服务器、端口、发件人账号、发件人密码
    if err := d.DialAndSend(m); err != nil {
        panic(err)
    }
}

运行:go run sendMail.go,发送成功之后,就能收到邮件了。

这里写图片描述

常用邮箱

列举一些常用的邮箱,可以用来测试:

  • 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)

开启服务

出于邮箱安全的考虑,很多邮箱缺省是关闭 POP3/SMTP 服务的,需要登录邮箱设置后开启。

以 QQ 邮箱为例,进入邮箱“设置”,在“帐户”项里就可找到“POP3/SMTP服务”的设置项,进行开启。

这里写图片描述

温馨提示:登录第三方客户端时,密码框请输入“授权码”进行验证。

也就是说,在使用 QQ 邮箱发送邮件的时候,需要使用授权码,而不是 QQ 密码!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7825 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
9549 0
python发送邮件
1 # -*- coding: UTF-8 -*- 2 ''' 3 发送txt文本邮件 4 http://www.cnblogs.com/liu-ke 5 ''' 6 import smtplib 7 from email.
992 0
Powershell 邮件发送
目录 目录 前言 Send-MailMessage NETMail 使用OutLook发送邮件 前言 最近领导想在winServer2012上搞个自动发送邮件的计划任务,下面有几种发送邮件的方式。
1594 0
spring 发送邮件问题
public void sendEmail() throws Exception { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); //设定mail server senderImpl.
810 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
11203 0
Golang发送邮件
简述 Go 提供了一个 smtp(Simple Mail Transfer Protocol - 简单邮件传输协议)库作为其网络包的一部分,“net/smtp”公开了一些可立即使用的有用功能。 Gomail - 一个比较成熟的第三方包,提供了一个快速、简单的解决方案,可以轻松地发送电子邮件。 简述 Gomail 特性 使用 常用邮箱 开启服务 Go
8107 0
SpringBoot多邮件源发送邮件
最近由于业务需要,需要使用邮件对用户进行通知,但是单个邮箱有发送限制,当推送量过多时,经常会出现失败,于是考虑使用多个邮箱进行发送,由于`spring-boot-starter-mail`不支持同时配置多个邮件源,所以决定自己动手实现。
216 0
+关注
潘志闻
互联网挖掘者
290
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载