Golang实现简单的邮件发送

序言

  • Golang中提供了net/smtp包提供邮件的发送功能,但是在目前已经有了封装成熟的邮件发送包-Gomail,点击此处访问项目GitHub.
  • 在之前的一篇CSDN博客中,我详细的描述过Java对邮件发送、接收以及转发等操作,点击此处访问Java Mail详解,所以在这里也不再讲述SMTP以及POP这些邮件协议,直接通过通过gomail包来发送邮件.

Goloang-gomail

使用gomail包来进行邮件发送时,操作很简单,只需要调用设置好消息体以及通过认证就可以进行邮件的发送,代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package main

import (
"fmt"

"gopkg.in/gomail.v2"
)

func main() {
m := gomail.NewMessage()
// 发件人
m.SetAddressHeader("From", "swxctx@sina.com", "Golang-Mail-Test")
// 收件人
m.SetHeader("To", m.FormatAddress("swxctx@sina.cn", "go-mail"))
// 主题
m.SetHeader("Subject", "Gomail")
// 发送的body体
m.SetBody("text/html", "<h4>我的测试邮件<h4><a href = \"http://www.swxctx.top\">看看我的网站</a>")

// 发送邮件服务器、端口、发件人账号、发件人密码
d := gomail.NewPlainDialer("smtp.sina.com", 25, "swxctx@sina.com", "****")
if err := d.DialAndSend(m); err != nil {
panic(err)
}
fmt.Println("mail send success...")
}

在这里只需要关注于body体的编写,这里可以使用多种Content-type,比如text/html、string等。

发送成功如图所示:
mail

文章目录
  1. 1. 序言
  2. 2. Goloang-gomail