email - 使用 Golang 解析电子邮件字段

标签 email parsing go

我正在尝试在 Go 中解析我的电子邮件,我需要帮助。

如何获取邮件的Content-type字段?

    cmd, _ = c.Fetch(set, "BODY[HEADER]", "BODY[1]")
    for cmd.InProgress() {
    for _, rsp = range cmd.Data {
        header := imap.AsBytes(rsp.MessageInfo().Attrs["BODY[HEADER]"])
        body := imap.AsString(rsp.MessageInfo().Attrs["BODY[1]"])
        if msg, _ := mail.ReadMessage(bytes.NewReader(header)); msg != nil {

有了这个,我可以访问正文和 header ,但是当电子邮件包含包含文件时,然后使用 BODY[1] 我拥有所有元数据,而不仅仅是纯文本。为避免这种情况,我可以使用 BODY[1.1],但我需要 Content-Type:[multipart/alternative] 条件,但我无法访问该字段。

最佳答案

好的,所以我自己想通了。但无论如何,也许其他人对此感兴趣。您可以通过

访问邮件的各个字段
msg.Header.Get("Content-type")

您可以输入任何 header 部分名称,而不是 Content-type

fmt.println(msg)

知道它有哪些名称字段

关于email - 使用 Golang 解析电子邮件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453104/

相关文章:

Ruby 电子邮件编码和引用打印内容

java - 获取我手机中所有 Gmail 中的主要 Gmail ID

c# - 如何将 MailMessage 对象作为 *.eml 或 *.msg 文件保存到磁盘

php - PHP解析/语法错误;以及如何解决它们

go - 结构映射不保存键/值

php - 如何使用 PHP 在 Hotmail 的收件箱而不是垃圾邮件中发送电子邮件?

php - 将 ASCII 文件解析为 MySQL 表

c# - 如何在 LINQ 中比较两个匿名变量列表

go - 在 go routine 中延迟调用

go - 在 golang 中只设置一次全局变量