亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Go 中從 imap 服務器獲取正文

如何在 Go 中從 imap 服務器獲取正文

Go
慕娘9325324 2021-09-10 17:13:13
我使用以下網址中的示例代碼成功獲取了電子郵件標頭列表:https : //godoc.org/code.google.com/p/go-imap/go1/imap#example-Client。但是,我仍然無法獲取電子郵件的正文。任何人都可以展示一些可以從 Golang 中的 imap 服務器獲取電子郵件正文的工作示例代碼嗎?
查看完整描述

2 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

我現在想出了如何獲取正文。


cmd, _ = c.UIDFetch(set, "RFC822.HEADER", "RFC822.TEXT")


// Process responses while the command is running

fmt.Println("\nMost recent messages:")

for cmd.InProgress() {

    // Wait for the next response (no timeout)

    c.Recv(-1)


    // Process command data

    for _, rsp = range cmd.Data {

        header := imap.AsBytes(rsp.MessageInfo().Attrs["RFC822.HEADER"])

        uid := imap.AsNumber((rsp.MessageInfo().Attrs["UID"]))

        body := imap.AsBytes(rsp.MessageInfo().Attrs["RFC822.TEXT"])

        if msg, _ := mail.ReadMessage(bytes.NewReader(header)); msg != nil {

            fmt.Println("|--", msg.Header.Get("Subject"))

            fmt.Println("UID: ", uid)


            fmt.Println(string(body))

        }

    }

    cmd.Data = nil

    c.Data = nil

}


查看完整回答
反對 回復 2021-09-10
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

您鏈接到的示例代碼演示了如何使用 IMAPFETCH命令獲取RFC822.HEADER消息的消息數據項。RFC包含可以從消息中獲取的標準數據項列表。

如果您想要整個 mime 格式的消息(標題和正文),則BODY應該使用請求。您可以分別通過請求BODY[HEADER]BODY[TEXT]分別獲取標題和消息正文。修改示例程序以使用這些數據項之一應該會得到您想要的數據。


查看完整回答
反對 回復 2021-09-10
  • 2 回答
  • 0 關注
  • 250 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號