golang中net/mail包用法

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

net/mail包實現瞭解析郵件訊息的功能

本包大部分都遵守RFC 5322規定的文法,值得注意的區別是:

舊格式地址和嵌入遠端資訊的地址不會被解析
組地址不會被解析
不支援全部的間隔符(CFWS文法元素),如分屬兩行的地址


函數:

func ParseAddressList(list string) ([]*Address, error)//該函數將給定的字元形式表示的地址list解析成標準的地址清單。
type Address //該結構體代表一個獨立的mail地址,一個地址:"Barry Gibbs <bg@example.com>"經過位址解析後會變成Address{Name: "Barry Gibbs", Address: "bg@example.com"}。

type Address struct {        Name    string // Proper name; may be empty.        Address string // user@domain}

func ParseAddress(address string) (*Address, error) //解析一個獨立的RFC 5322地址,地址形如:“Barry Gibbs <bg@example.com>”
func (a *Address) String() string //將a代表的地址表示為合法的RFC 5322地址字串。如果Name欄位包含非ASCII字元將根據RFC 2047轉義。


type Header //Header代表在一個郵件訊息頭部的key-value對。

type Header map[string][]string

func (h Header) AddressList(key string) ([]*Address, error)//將鍵key對應的值(字串)作為郵箱地址清單解析並返回
func (h Header) Date() (time.Time, error)//擷取header中Date的值
func (h Header) Get(key string) string//返回在header中指定分配給指定key的第一個值。如果該key沒有值的話,返回“”
type Message//表示一個解析後的郵件訊息

type Message struct {        Header Header        Body   io.Reader}

func ReadMessage(r io.Reader) (msg *Message, err error) //從r讀取一個郵件,會解析郵件標頭域,訊息主體可以從r/msg.Body中讀取。


舉例說明用法。

參考:http://golang.org/pkg/net/mail/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.