使用GOLANG从电子邮件文件中提取附件

时间:2017-06-12 09:51:35

标签: email go attachment

我一直在使用golang解析电子邮件。我现在正在提取附件。我查看了golang lib MIME和MIME / multipart。但它没有任何方法或功能来做到这一点。

具体我想做的是:示例

我有一个附件为file1.txt,file2.pdf和file3.png的电子邮件文件。我已经成功解析了电子邮件正文。现在我想提取附件并将​​它们保存在一个单独的目录中。我搜索了golang的所有部分,包括MIME和MIME / multipart。他们似乎没有这个功能。 golang可以这样做吗?如果有任何提示或线索请。

2 个答案:

答案 0 :(得分:0)

我认为首先应找到以下界限:

  

内容类型:multipart / mixed;边界= {样本边界}

然后您按sample-boundary分割电子邮件。

最后,您获得了附件的base64编码部分。

我目前正在研究这个问题。我完成后会回来的。

答案 1 :(得分:0)

我找到了一个使用DusanKasan的parsemail函数的解决方案

import (
    "github.com/DusanKasan/parsemail"
)

func readEmail() error {
    b := getYourEmail()
    email, err := parsemail.Parse(bytes.NewBuffer(b))
    if err != nil{
        return err
    }
    for _, a := range email.Attachments{
        // do stuff with attachment
    }
}