Ответ
Да, работал с IMAP в Golang через библиотеку github.com/emersion/go-imap. Пример базового подключения и чтения писем:
package main
import (
"log"
"github.com/emersion/go-imap/client"
)
func main() {
// Подключение к серверу
c, err := client.DialTLS("imap.example.com:993", nil)
if err != nil {
log.Fatal(err)
}
defer c.Logout()
// Авторизация
if err := c.Login("user@example.com", "password"); err != nil {
log.Fatal(err)
}
// Выбор почтового ящика
mbox, err := c.Select("INBOX", false)
if err != nil {
log.Fatal(err)
}
log.Printf("Всего писем: %d", mbox.Messages)
}
Основные операции:
- Подключение через TLS (IMAPS)
- Авторизация
- Выбор почтового ящика
- Получение списка писем (Fetch)
- Работа с MIME-структурой писем
Библиотека поддерживает IDLE-режим для получения уведомлений о новых письмах в реальном времени.