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
}

TA貢獻1873條經驗 獲得超9個贊
您鏈接到的示例代碼演示了如何使用 IMAPFETCH
命令獲取RFC822.HEADER
消息的消息數據項。RFC包含可以從消息中獲取的標準數據項列表。
如果您想要整個 mime 格式的消息(標題和正文),則BODY
應該使用請求。您可以分別通過請求BODY[HEADER]
和BODY[TEXT]
分別獲取標題和消息正文。修改示例程序以使用這些數據項之一應該會得到您想要的數據。
- 2 回答
- 0 關注
- 250 瀏覽
添加回答
舉報