Как используя golang imap скачивать письмо и вложение?

Добрый день, может кто делал подскажите может есть либа которая делает то что нужно.
Нужно получить последние n писем из почтового ящика - из каждого письма забрать заголовок, получателя, отправителя, время и дату и все вложения(вложения сохранить на сервер).
Или кто делал сохранение вложение? С самим чтением писем и данных из них проблемы нет но чтото пока не получается сохранить вложение.
  • Вопрос задан
  • 1163 просмотра
Пригласить эксперта
Ответы на вопрос 1
@mazhigali
"github.com/emersion/go-imap"
switch h := p.Header.(type) {
//case mail.TextHeader:
//// This is the message's text (can be plain-text or HTML)
//b, _ := ioutil.ReadAll(p.Body)
//log.Println("Got text: %v", string(b))
case mail.AttachmentHeader:
// This is an attachment
filename, _ := h.Filename()
//log.Println("Got attachment: %v", filename)

for _, checkFileName := range checkFileNames {
//если название вложения к письму совпадает с то скачиваем в прайс
if strings.Contains(filename, checkFileName) == true {
log.Println("Downloading file: ", filename)

//создаем файл
output, err := os.Create(filename)
if err != nil {
fmt.Println("Error while creating", "-", err)
}
defer output.Close()
//--------------

//записываем байты в файл
_, err = io.Copy(output, p.Body)
if err != nil {
fmt.Println("Error while downloading", "-", err)
}
//--------------
}
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы