go傳送郵件

2022-09-07 11:12:09 字數 3471 閱讀 4649

1.專案中需要把指令碼附件傳送給同事郵箱,找了好久

1、安裝 gomail 包:

go get -v gopkg.in/gomail.v2

2、完整**:

package main

import (

"fmt"

"gopkg.in/gomail.v2"

"mime")/*

go郵件傳送

*/func sendmail(mailto string, subject string, body string) error

m := gomail.newmessage(

//傳送文字時設定編碼,防止亂碼。 如果txt文字設定了之後還是亂碼,那可以將原txt文字在儲存時

//就選擇utf-8格式儲存

gomail.setencoding(gomail.base64),

)m.setheader("from", m.formataddress(mailconn["user"], "lll")) // 新增別名

m.setheader("to", mailto...) // 傳送給使用者(可以多個)

m.setheader("subject", subject) // 設定郵件主題

m.setbody("text/html", body) // 設定郵件正文

//乙個檔案(加入傳送乙個 txt 檔案):/tmp/foo.txt,我需要將這個檔案以郵件附件的方式進行傳送,同時指定附件名為:附件.txt

//同時解決了檔名亂碼問題

name := "附件.txt"

m.attach("e:/gocode/src/gomail/gomail.txt",

gomail.rename(name), //重新命名

gomail.setheader(map[string]string,

}),)

/*建立smtp客戶端,連線到遠端的郵件伺服器,需要指定伺服器位址、埠號、使用者名稱、密碼,如果埠號為465的話,

自動開啟ssl,這個時候需要指定tlsconfig

*/d := gomail.newdialer(mailconn["host"], 465, mailconn["user"], mailconn["pass"]) // 設定郵件正文

= &tls.config

err := d.dialandsend(m)

return err

}func main()

subject := "hello world!" // 郵件主題

body := "測試傳送郵件" // 郵件正文

err := sendmail(mailto, subject, body)

if err != nil

fmt.println("send successfully!")

}

整理如下

#開啟 go modules,如果你擔心影響到其他專案可以把這一項值寫為auto

go env -w go111module=on

#設定 goproxy

go env -w goproxy=

找到你專案的根目錄執行

go mod init

4.如果郵件正文需要是整個檔案內容,**如下

package main

import (

"bufio"

"crypto/tls"

"fmt"

"gopkg.in/gomail.v2"

"io"

"mime"

"os")/*

go郵件傳送*/

func sendmail(mailto string, subject string, body string) error

m := gomail.newmessage(

//傳送文字時設定編碼,防止亂碼。 如果txt文字設定了之後還是亂碼,那可以將原txt文字在儲存時

//就選擇utf-8格式儲存

gomail.setencoding(gomail.base64),

)m.setheader("from", m.formataddress(mailconn["user"], "ks~123")) // 新增別名

m.setheader("to", mailto...) // 傳送給使用者(可以多個)

m.setheader("subject", subject) // 設定郵件主題

"text/html", body) // 設定郵件正文

m.setbody("text/plain", body) // 設定郵件正文

//乙個檔案(加入傳送乙個 txt 檔案):/tmp/foo.txt,我需要將這個檔案以郵件附件的方式進行傳送,同時指定附件名為:附件.txt

//同時解決了檔名亂碼問題

name := "附件.txt"

m.attach("/home/scribe/test",

gomail.rename(name), //重新命名

gomail.setheader(map[string]string,

}),)

/*建立smtp客戶端,連線到遠端的郵件伺服器,需要指定伺服器位址、埠號、使用者名稱、密碼,如果埠號為465的話,

自動開啟ssl,這個時候需要指定tlsconfig

*/d := gomail.newdialer(mailconn["host"], 25, mailconn["user"], mailconn["pass"]) // 設定郵件正文

d.tlsconfig = &tls.config

err := d.dialandsend(m)

return err

}//go去讀檔案內容

func readall(filepth string) string

//a = a + line + "\n"

a = a + line}}

return a

}func main()

subject := "testtest" // 郵件主題

//body := "testtest" // 郵件正文

body := readall("/home/scribe/test")

err := sendmail(mailto, subject, body)

if err != nil

fmt.println("send successfully!")

}

html傳送郵件 Python傳送郵件(三十)

簡單郵件傳輸協議 smtp 是一種協議,用於在郵件伺服器之間傳送電子郵件和路由電子郵件。python提供smtplib模組,該模組定義了乙個smtp客戶端會話物件,可用於使用smtp或esmtp偵聽器守護程式向任何網際網路機器傳送郵件。這是乙個簡單的語法,用來建立乙個smtp物件,稍後將演示如何用它...

C 傳送郵件

今天俺學習c 傳送郵件的方法 在命名空間system.web.mail 傳送電子郵件主要用到了二個物件 乙個是mailmessage物件,此物件主要是封裝電子郵件的各個屬性,即所謂的發信人,收信人,信件的主題,信件的內容和信件的附件等。另外乙個是 tpmail物件,這個物件的最大作用是把已經定義好各...

C 傳送郵件

今天作乙個小專案,其中有個提醒功能,需要簡訊和郵件。因此查詢了一下c 傳送郵件,原來在學習計算機網路時了解到,其實就是實現 tp協議和pop3協議,但是自己有沒有伺服器,於是利用126的郵箱製作。如下 mailmessage message new mailmessage message.from ...