Я занимаюсь парсингом электронной почты с помощью golang. Сейчас я занимаюсь извлечением вложений. Я просмотрел golang lib MIME и MIME / multipart. Но у него нет для этого никаких методов или функций.

Что конкретно я хочу сделать: Пример

У меня есть файл электронной почты с вложениями file1.txt, file2.pdf и file3.png. Я успешно проанализировал текст сообщения электронной почты. Теперь я хочу извлечь вложение и сохранить его в отдельном каталоге. Я искал всю часть golang, включая MIME и MIME / multipart. Кажется, у них нет этой функции. Может ли Голанг это сделать? если да, то намекните, пожалуйста.

2
Jesse 12 Июн 2017 в 12:51
Может быть, эта библиотека поможет? Я думаю, что он неполный и заброшенный.
 – 
John S Perayil
12 Июн 2017 в 13:29
Мы используем этот gopkg.in/gomail.v2 для создания писем mime. Не тестировал их разборку.
 – 
RickyA
12 Июн 2017 в 17:47

2 ответа

Я нашел решение, которое использует функцию parsemail от DusanKasan

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
    }
}
1
Sebastian 30 Июл 2019 в 22:52

Я думаю, что в первую очередь вы должны найти границу:

Content-Type: составной / смешанный; Граница = {образец-граница}

Затем вы разделяете письмо на sample-boundary.

И, наконец, вы получаете прикрепляемую часть с кодировкой base64.

Я сейчас над этим работаю. Я вернусь, когда закончу.

0
kudo28 28 Мар 2018 в 12:21