1. 发邮件

1.1.1. 介绍

Gomail是用于发送电子邮件的简单高效的软件包。它已经过充分测试和记录。

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

它使用gopkg.in进行了版本控制,因此我保证每个版本都不会存在向后不兼容的更改。

它需要Go 1.2或更高版本。对于Go 1.5,不使用任何外部依赖项。

插件地址:https://github.com/go-gomail/gomail/tree/v2

1.1.2. 特征

Gomail支持:

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

无附件邮箱发送

package main

import (
    "fmt"
    "log"
    "strconv"

    "gopkg.in/gomail.v2"
)

func SendMail(mailTo []string, subject string, body string) error {
    mailConn := map[string]string{
        "user": "914145759@qq.com",
        "pass": "dqalbdjiamskbehg",
        //大家一定要注意,这里的密码不是你的邮箱的密码
        //是你的邮箱申请给你的一个 --授权码---
        "host": "smtp.qq.com",
        "port": "25",
    }

    port, _ := strconv.Atoi(mailConn["port"]) //转换端口类型为int

    m := gomail.NewMessage()

    m.SetHeader("From", m.FormatAddress(mailConn["user"], "go的慢慢学习路”")) //设置邮件发送人别名容易发送入垃圾箱
    // 这种方式可以添加别名,即“go的慢慢学习路”
    // 说明:如果是用网易邮箱账号发送,以下方法别名可以是中文,如果是qq企业邮箱,以下方法用中文别名,会报错,需要用上面此方法转码
    //m.SetHeader("From", "FB Sample"+"<"+mailConn["user"]+">") //这种方式可以添加别名,即“FB Sample”, 也可以直接用<code>m.SetHeader("From",mailConn["user"])</code> 读者可以自行实验下效果
    //m.SetHeader("From", mailConn["user"])
    m.SetHeader("To", mailTo...)    //发送给多个用户
    m.SetHeader("Subject", subject) //设置邮件主题
    m.SetBody("text/html", body)    //设置邮件正文

    d := gomail.NewDialer(mailConn["host"], port, mailConn["user"], mailConn["pass"])

    err := d.DialAndSend(m)
    return err

}
func main() {
    //定义收件人
    mailTo := []string{
        "2990446079@qq.com", //设置多个邮箱可以群发
    }
    subject := "这是邮件的主题"
    body := "<h1>这是邮件正文</h1>"
    err := SendMail(mailTo, subject, body)
    if err != nil {
        log.Println(err)
        fmt.Println("send fail")
        return
    }

    fmt.Println("send successfully")

}

results matching ""

    No results matching ""