Я использую Go и хочу отправить письмо по протоколу SMTP локально работающему экземпляру Exim.
У меня много доменов, которые обслуживаются на одном компьютере с Centos 7. Все эти домены настроены на получение писем на Яндексе. Я не хочу превышать лимиты на Яндексе, так как я буду отправлять большое количество писем.
Gmail предложил
Использовать локальный почтовый сервер - если у вас есть локальный почтовый сервер, используйте его для отправки почты непосредственно получателям, чтобы избежать ограничений на отправку. Этот локальный сервер также должен быть добавлен в запись SPF, чтобы сообщения не были помечены как спам.
Я попытался использовать exim -t
с кодом golang с WriteTo() пакета Gomail, но он не передавал письма с заголовками BCC в exim.
Поэтому я советую использовать протокол SMTP в StackOverflow, так как Gomail отлично работает на SMTP.
Я использовал следующий код для достижения этого
m := gomail.NewMessage()
m.SetHeader("From", "me@example.com")
m.SetHeader("To", "you@example.com")
m.SetAddressHeader("Bcc", "youbcc@example.com", "Bcc Email")
m.SetHeader("Bcc", "anotherbcc@example.com", "yetbcc@example.com")
m.SetHeader("Reply-To", "me@example.com")
m.SetHeader("Subject", "Subject is to gomail to be discussed")
body := `Why is bcc not getting populated`
m.SetBody("text/html", body)
d := gomail.NewDialer("127.0.0.1", 587, "", "")
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := d.DialAndSend(m); err != nil {
panic(err)
}
и получил следующую ошибку
паника: gomail: не удалось отправить электронное письмо 1: 550 Проверка не удалась для me@example.com Невозможный адрес Не удалось проверить отправителя
Exim Logs говорит:
H = localhost [127.0.0.1] отправитель проверил ошибку для me@example.com: адрес не маршрутизируемый
H = localhost [127.0.0.1] X = TLSv1.2: ECDHE-RSA-AES128-GCM-SHA256: 128 CV = нет F=me@example.com отклонено RCPT you@example.com: отправителю не удалось проверить
It means Exim failed to verify your From address for some reason. What exactly reason depends on how Exim is configured.
Поэтому мой вопрос заключается в том, как мне исправить код / конфиг exim (настроенный VestaCP)
Ps Я использую реальные письма в реальном коде!