我们有一个 docker compose,它将 golang 邮件服务与 mailhog 服务连接起来。下面是我们的 docker-compose.yml 中的 mailhog 配置:
mailhog:
image: mailhog/mailhog:latest
restart: always
ports:
- 1025:1025
- 8025:8025
networks:
mercury:
aliases:
- mailhog.local
我们正在使用 gopkg.in/gomail.v2 包。以下是我们 docker-compose 中 golang 邮件服务的功能。这是返回错误的函数:
func (e *Email) attemptToSendMessage(m structs.Message) {
var s gomail.SendCloser
var err error
//If we want to disable any emails being sent, we have set an ENV var to disallow it.
if !e.DisableEmail {
d := gomail.NewDialer(e.smtpServer, e.smtpPort, e.smtpUser, e.smtpPassword)
if s, err = d.Dial(); err != nil {
log.WithFields(log.F("error", err)).Notice("Issue connecting to smtp server")
e.failMessage(m)
return
}
if err = gomail.Send(s, e.parseMessage(m)); err != nil {
log.WithFields(log.F("error", err)).Notice("ERROR sending to smtp server, retrying")
e.failMessage(m)
s.Close()
return
}
s.Close()
}
但是,当我们尝试连接时,会收到以下错误消息:
12 月 8 日 08:25:18 35.183.142.45 golang.mail.app.instance 2020-12-08T13:25:18.758599257Z 注意问题连接到 smtp 服务器错误=未加密连接
从 mailhog 应用返回的消息。
12 月 8 日 08:25:18 35.183.142.45 mailhog.instance 2020/12/08 13:25:18 [SMTP 172.29.0.4:33526] 发送 16 个字节:'250 AUTH PLAIN\r\n'
12 月 8 日 08:25:18 35.183.142.45 mailhog.instance 2020/12/08 13:25:18 [SMTP 172.29.0.4:33526] 收到 6 个字节:'QUIT\r\n'