兩種go傳送郵件的方式

lemonQAQ發表於2021-03-18

方法一

go標準庫中net/smtp
使用方式如下所示:


func SentToEmail(user, password, host, to, subject, body string) error {
    hp := strings.Split(host, ":")
    auth := smtp.PlainAuth("", user, password, hp[0])
    content_type := "Content-Type: text/plain;charset=UTF-8"

    s := fmt.Sprintf("To:%s\r\nFrom:%s<%s>\r\nSubject:%s\r\n%s\r\n\r\n%s",
        to, "goblog", user, subject, content_type, body)
    msg := []byte(s)

    err := smtp.SendMail(host, auth, user, []string{to}, msg)
    return err
}

方法二

go第三方庫gomail
使用方法如下所示:

func Send(from, to, code string) error {
    // 配置郵件資訊
    m.SetAddressHeader("From", from, /*傳送方名稱*/)
    m.SetHeader("To", to)
    m.SetHeader("Subject", /*郵件標題*/)
    // m.Embed()
    m.SetBody(/*郵件內容型別*/, /*郵件內容*/)

    // 發生郵件
    d := gomail.NewDialer(/*host*/, /*對應埠號*/, from, /*郵箱檢驗碼*/)

    err := d.DialAndSend(m)
    if err != nil {
        logger.LogError(err)
        return err
    }
    return nil
}

注意兩種方法 郵箱檢驗碼是需要在郵箱內部設定的

參考連線:blog.csdn.net/yuyinghua0302/articl...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章