2017-04-06 130 views
0

我有一個dockerised web應用程序部署在GAE wriiten中去。付款模塊使用分條簽出API,並在成功時觸發電子郵件通知。在Dockerised Golang中的smtp sendmail在GAE中的Web應用程序不起作用

在調試時,我觀察到下面這行代碼沒有執行。我試過端口587,結果是一樣的。

err := smtp.SendMail("smtp.gmail.com:465", auth, from, []string{to}, []byte(msg)) 

我在我的本地m/c上具有相同的應用程序,並且此功能對其起作用。雖然我的本地m/c沒有使用docker。

我在'from'用戶字段中使用與我的GAE帳戶相同的用戶憑據。這可能是代碼失敗的原因。或者應該在dockerfile中描述smtp服務auth參數以及要公開的端口。鑑於只有4個端口可用,在GAE中映射端口465或587的正確方法是什麼? 我正在使用Golang圖像1.7.1

碼頭日誌不顯示任何錯誤。但電子郵件不會發送。

等/容器的resolv.conf具有以下DNS條目

search c.cloud-devshell-prod.internal. google.internal. 
nameserver 169.254.169.254 
options: ndots5 

希望任何建議..

感謝

+0

什麼是錯誤?你將它設置爲'err',所以記錄並告訴我們。 – eduncan911

+0

好的。我創建了一個簡單的文件email.go,並在App Engine中調用了sendmail函數,但沒有使用docker。郵件沒有發送,也沒有錯誤。我正在使用App Engine靈活環境。 – user3809560

+0

我在使用'FROM scratch'圖像(不在Google App Engine上)通過Dockerized golang應用程序通過SMTP發送電子郵件時遇到了類似的問題,我通過指定卷解決了這個問題:'/ etc/ssl/certs/ca-certificates .CRT:在/ etc/SSL /證書/ CA-certificates.crt'。不知道它是否也適用於GAE應用程序。希望它可以幫助@ user3809560 :) –

回答

相關問題