我在 Go 中的 GAE wriiten 上部署了一个 dockerized Web 应用程序。支付模块使用条纹结账 API,成功后会触发电子邮件通知。
在调试时,我观察到以下代码行未执行。我尝试了端口 587,结果是一样的。
err := smtp.SendMail("smtp.gmail.com:465", auth, from, []string{to}, []byte(msg))
我的本地m/c上有相同的应用程序,并且此功能适用于它。不过,我没有在我的本地m/c上使用docker。
我在"发件人"用户字段中使用与我的 GAE 帐户相同的用户凭据。 这可能是代码失败的原因吗?或者应该在 dockerfile 中描述 smtp 服务身份验证参数以及要公开的端口。鉴于只有 4 个端口可用,在 GAE 中映射端口 465 或 587 的正确方法是什么? 我正在使用 Golang 图像 1.7.1
Docker 日志不显示任何错误。但是电子邮件没有发送。
容器的 etc/resolv.conf 具有以下 DNS 条目
search c.cloud-devshell-prod.internal. google.internal.
nameserver 169.254.169.254
options: ndots5
任何建议将不胜感激。
谢谢
按照链接上的说明进行操作
https://cloud.google.com/appengine/docs/flexible/go/sending-emails-with-mailgun
使用mailgun设置和帐户并使其工作。邮件在运行 docker 后发送。