Golang发送邮件

简述

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

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

  • 简述
  • 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 密码!

时间: 2024-10-22 03:38:29

Golang发送邮件的相关文章

Go语言通过smtp发送邮件的方法_Golang

本文实例讲述了Go语言通过smtp发送邮件的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (  "net/smtp"  "fmt"  "strings" ) /*  * user : example@example.com login smtp server user  * password: xxxxx login smtp server password  * host: smt

CI框架发送邮件

CI框架有发送邮件类:具体的可以看手册,关于邮件的配置文件,我放在单独的文件里,方便以后维护 文件名为:email.php,这个文件保存到application/config/email.php,然后在控制器里加载$this->load->library("email"),这样就不需要使用$this->email->initialize()函数来初始化参数了 Php代码 <?php $config["protocol"] = "

使用PHPMailer发送邮件的设置方法

  PHPMailer 是一个强大的 PHP 编写的邮件发送类,使用它可以更加便捷的发送邮件,并且还能发送附件和 HTML 格式的邮件,同时还能使用 SMTP 服务器来发送邮件. 大家也许会问,PHP 不是已经内置了 mail() 函数了吗,为什么要用 PHPMailer 呢?mail() 函数功能并不完善,只能发送文本的 e-mail,并且 mail() 函数只能应用在 Linux 服务器(很多装在 Win 主机的 WP 博客用户注册收不到邮件也是这个原因),还有一个最大的问题就是使用 mai

[喵咪Golang(1)]Go语言开篇

[喵咪Golang(1)]Go语言开篇 前言 哈喽大家好啊!喵咪我今天又来开坑了,最近学习和使用了go语言了一段时间,也在组合一些好的组件编写phalgo开发框架.在想是不是可以来写一个套关于go语言的文章和一些好的组件的介绍使用,虽然自己也是半桶水但是我相信在编写的过程中能给自己很多收获,最好也能帮助大家了解和熟悉golang这门语言,话不多说那么就开始今天的go语言之旅吧~ 附上: 喵了个咪的博客:w-blog.cn phalgo地址:github.com/wenzhenxi/phalgo

java发送邮件时遇到的坑

之前用163邮箱发邮件时明明是成功的,但是使用中国移动自己的邮箱时,无论如何在linux服务器中都发送不成功,一开始报如下错误: javax.mail.MessagingException: Unknown SMTP host: mail.chinamobilesz.com at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1959) ~ [mail-1.4.7.jar:1.4.7] at com.sun.mail.

PHPMailer发送邮件

准备工作 下载地址 https://github.com/Synchro/PHPMailer 代码目录 简单实例 header("Content-type:text/html;charset=utf-8"); require './PHPMailerAutoload.php'; $mail = new PHPMailer; // 启用详细调试输出 // $mail->SMTPDebug = 3; // 设置报错提示语言 $mail->SetLanguage('zh_cn',

golang要加入泛型了,有什么看法?

问题描述 golang要加入泛型了,有什么看法? golang 如果支持泛型,会不会迅速取代c++?这次可能真的要加入泛型了.大概在1.5 版本会引入. 解决方案 一年多后再看这个问题,能取代c++的很明显不会是go,rust在语法上明显优于go,况且go1.5也没有引入泛型

Linux sendmail发送邮件失败诊断案例(一)

在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查日志文件发现如下错误(Notice:由于涉及公司服务器,邮箱等,故下面hostname.邮箱地址等信息使用xxx代替) tail -40 /var/log/maillog   May 15 09:43:38 xxxxx sendmail[9182]: s4F1hcQe009182: from=root, size=58269, class=0, nrcpts=1, msgid=<201405150143.s4F1hcQe0091

WebSocket 和 Golang 实现聊天功能

这个示例应用程序展示了如何使用 WebSocket, Golang 和 jQuery 创建一个简单的web聊天应用程序.这个示例的源代码在 https://github.com/waylau/goChat . Running the example 运行示例 这个示例需要 Golang 开发环境. 该页面描述如何安装开发环境. 一旦你去启动和运行,您可以下载.构建和运行的例子, 使用命令: go get gary.burd.info/go-websocket-chat go-websocket-