[golang]使用gomail發郵件(在Go中發送電子郵件的最佳方式)


1 前言

定義郵箱服務器連接信息,如果是網易郵箱 pass填密碼,qq郵箱填授權碼(客戶端專用密碼)。

 

gomail包:

go get gopkg.in/gomail.v2

更多功能可以參考 https://github.com/go-gomail/gomail  

2 代碼

/**
 * @Author: FB
 * @Description: 
 * @File:  main.go
 * @Version: 1.0.0
 * @Date: 2019/9/7 14:01
 */
package main

import (
	"gopkg.in/gomail.v2"
	"strconv"
	"log"
	"fmt"
	)

func SendMail(mailTo []string, subject string, body string) error {
	//定義郵箱服務器連接信息,如果是網易郵箱 pass填密碼,qq郵箱填授權碼
	
        //mailConn := map[string]string{
    	//	"user": "xxx@163.com",
	//	"pass": "your password",
	//	"host": "smtp.163.com",
	//	"port": "465",
	//}

	mailConn := map[string]string{
		"user": "xxx@sample.cn",
		"pass": "r4r3St*****7a7Uk",
		"host": "smtp.exmail.qq.com",
		"port": "465",
	}

	port, _ := strconv.Atoi(mailConn["port"]) //轉換端口類型為int

	m := gomail.NewMessage()

	m.SetHeader("From",  m.FormatAddress(mailConn["user"], "XX官方")) //這種方式可以添加別名,即“XX官方”
     //說明:如果是用網易郵箱賬號發送,以下方法別名可以是中文,如果是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{
		"abc@sample.com",
	}
	//郵件主題為"Hello"
	subject := "Hello by golang gomail from exmail.qq.com"
	// 郵件正文
	body := "Hello,by gomail sent"

	err := SendMail(mailTo, subject, body)
	if err != nil {
		log.Println(err)
		fmt.Println("send fail")
		return
	}

	fmt.Println("send successfully")

}
    

3 參考

1.golang 使用 gomail 發送郵件

2.使用gomail發送郵件之解決附件名亂碼的問題

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM