欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang實現(xiàn)通過smtp發(fā)送電子郵件的方法

 更新時間:2016年07月23日 08:59:12   作者:dotcoo  
這篇文章主要介紹了golang實現(xiàn)通過smtp發(fā)送電子郵件的方法,實例分析了Go語言基于SMTP協(xié)議發(fā)送郵件的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了golang實現(xiàn)通過smtp發(fā)送電子郵件的方法。分享給大家供大家參考,具體如下:

今天寫了一個公司的郵件發(fā)送后臺服務(wù),php只需要把郵件存入數(shù)據(jù)庫,然后golang寫的mailservice就會吧郵件發(fā)送出去.這個公司的代碼就不發(fā)出來的,以為帶有公司的業(yè)務(wù)邏輯,我把代碼整理了一下發(fā)布出來供大家參考.呵呵

復(fù)制代碼 代碼如下:
package main
import (
    "fmt"
    "net/mail"
    "net/smtp"
    "encoding/base64"
)
func main() {
    b64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
    host := "smtp.mail.com"
    email := "mail1@mail.com"
    password := "password"
    toEmail := "mail2@mail.com"
    from := mail.Address{"發(fā)送人", email}
    to := mail.Address{"接收人", toEmail}
    header := make(map[string]string)
    header["From"] = from.String()
    header["To"] = to.String()
    header["Subject"] = fmt.Sprintf("=?UTF-8?B?%s?=", b64.EncodeToString([]byte("郵件標(biāo)題2")))
    header["MIME-Version"] = "1.0"
    header["Content-Type"] = "text/html; charset=UTF-8"
    header["Content-Transfer-Encoding"] = "base64"
    body := "我是一封電子郵件!golang發(fā)出.";
    message := ""
    for k, v := range header {
        message += fmt.Sprintf("%s: %s\r\n", k, v)
    }
    message += "\r\n" + b64.EncodeToString([]byte(body))
    auth := smtp.PlainAuth(
        "",
        email,
        password,
        host,
    )
    err := smtp.SendMail(
        host+":25",
        auth,
        email,
        []string{to.Address},
        []byte(message),
    )
    if err != nil {
        panic(err)
    }
}

希望本文所述對大家Go語言程序設(shè)計有所幫助。

相關(guān)文章

  • 淺談go語言renderer包代碼分析

    淺談go語言renderer包代碼分析

    本篇文章主要介紹了淺談go語言renderer包代碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Go計算某段代碼運行所耗時間簡單實例

    Go計算某段代碼運行所耗時間簡單實例

    這篇文章主要給大家介紹了關(guān)于Go計算某段代碼運行所耗時間的相關(guān)資料,主要介紹了Golang記錄計算函數(shù)執(zhí)行耗時、運行時間的一個簡單方法,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-11-11
  • Golang標(biāo)準(zhǔn)庫syscall詳解(什么是系統(tǒng)調(diào)用)

    Golang標(biāo)準(zhǔn)庫syscall詳解(什么是系統(tǒng)調(diào)用)

    最近在研究go語言,發(fā)現(xiàn)go語言系統(tǒng)調(diào)用源碼只有調(diào)用函數(shù)的定義,今天通過本文給大家分享Golang標(biāo)準(zhǔn)庫syscall詳解及什么是系統(tǒng)調(diào)用,感興趣的朋友一起看看吧
    2021-05-05
  • Go語言實現(xiàn)AzDG可逆加密算法實例

    Go語言實現(xiàn)AzDG可逆加密算法實例

    這篇文章主要介紹了Go語言實現(xiàn)AzDG可逆加密算法,實例分析了AzDG可逆加密算法的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go語言中map使用和并發(fā)安全詳解

    Go語言中map使用和并發(fā)安全詳解

    golang?自帶的map不是并發(fā)安全的,并發(fā)讀寫會報錯,所以下面這篇文章主要給大家介紹了關(guān)于Go語言中map使用和并發(fā)安全的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Go中init()執(zhí)行順序詳解

    Go中init()執(zhí)行順序詳解

    go允許定義多個init(),多個init()會涉及到執(zhí)行先后的問題,本文將詳細講解Go中init()執(zhí)行順序,感興趣的朋友一起看看吧
    2022-09-09
  • 使用Viper處理Go應(yīng)用程序的配置方法

    使用Viper處理Go應(yīng)用程序的配置方法

    Viper是一個應(yīng)用程序配置解決方案,用于Go應(yīng)用程序,它支持JSON、TOML、YAML、HCL、envfile和Java properties配置文件格式,這篇文章主要介紹了使用Viper處理Go應(yīng)用程序的配置,需要的朋友可以參考下
    2023-09-09
  • Golang 定時器的終止與重置實現(xiàn)

    Golang 定時器的終止與重置實現(xiàn)

    在實際開發(fā)過程中,我們有時候需要編寫一些定時任務(wù)。很多人都熟悉定時器的使用,那么定時器應(yīng)該如何終止與重置,下面我們就一起來了解一下
    2021-08-08
  • Go并發(fā)編程中sync/errGroup的使用

    Go并發(fā)編程中sync/errGroup的使用

    本文主要介紹了Go并發(fā)編程中sync/errGroup的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Fedora14 Linux系統(tǒng)安裝Golang開發(fā)環(huán)境筆記

    Fedora14 Linux系統(tǒng)安裝Golang開發(fā)環(huán)境筆記

    這篇文章主要介紹了Fedora14 Linux系統(tǒng)安裝Golang開發(fā)環(huán)境筆記,本文講解了2種安裝方法,需要的朋友可以參考下
    2014-10-10

最新評論