go - 如何从 Go 中的 imap 服务器获取正文

标签 go imap fetch

我使用此 url 中的示例代码成功获取了电子邮件 header 列表:https://godoc.org/code.google.com/p/go-imap/go1/imap#example-Client .但是,我仍然无法获取电子邮件的正文。任何人都可以展示一些可以从 Golang 中的 imap 服务器获取电子邮件正文的工作示例代码吗?

最佳答案

我现在想出了如何获取正文。

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/27791655/

相关文章:

go - 松弛集成 : 404 Expired url https://hooks. slack.com/commands

postgresql - GORM 数据库中的自动迁移将不需要的字段添加到 SQL 表

php - 如何确定通过 PHP IMAP 函数检索到的电子邮件的部件号?

javascript - 使用 fetch api Redux 异步请求

javascript - 通过key获取json数据

mysql - 如何为gorm组织多个外键

go - oc.exe命令提示符: Unexpected unclosed action in if中的OpenShift GoLang模板解析错误

Delphi:将 IMAP 连接到 gmail 帐户

c# - 如何限制 Office 365 应用程序的邮箱访问

javascript - 我如何通过 api 获取大量用户?使用 async wait