gpt4 book ai didi

go - 如何在 go 中获取电子邮件正文(使用 imap )?

转载 作者:IT王子 更新时间:2023-10-29 01:13:55 27 4
gpt4 key购买 nike

如何在 go 中获取电子邮件正文(使用 imap)?。到目前为止,我可以找到 headers但没有指示去哪里寻找尸体。

最佳答案

我想出了如何获取正文。这是代码:

c.Select("INBOX", true)
//fmt.Print("\nMailbox status:\n", c.Mailbox)

// Fetch the headers of the 10 most recent messages
set, _ := imap.NewSeqSet("4:*")
//if c.Mailbox.Messages >= 10 {
// set.AddRange(c.Mailbox.Messages-9, c.Mailbox.Messages)
//} else {
// set.Add("1:*")
//}
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
}

关于go - 如何在 go 中获取电子邮件正文(使用 imap )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24855510/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com