當我需要在特定時刻發送郵件時,我目前正在開發一個 Spring Boot 應用程序,所以我使用javax.mail api 來執行此操作,該程序在本地機器上運行良好,但是當我在谷歌云中部署應用程序時應用程序引擎,我不斷收到以下錯誤:javax.mail.AuthenticationFailedException當涉及到郵寄要求時,我嘗試遵循谷歌云文檔說明,但我一直收到同樣的錯誤。按照我的代碼。* public boolean sendMail(String indicator, String destination, String hotelName, String username, String password) { Properties props = new Properties(); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "587"); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(env.getProperty(IConstants.mailAddress), env.getProperty(IConstants.mailPass)); } }); String indic = null; if(indicator.equals("R")){ indic = "RECEPTIONIST"; } if(indicator.equals("M")){ indic = "ROOMMAID"; }發件人郵件在授權郵件發件人列表中,一切都已正確配置,應用程序響應所有請求,但在發送郵件步驟時一直失敗。我在發件人 gmail 帳戶上啟用了安全性較低的應用程序身份驗證選項,但它一直拒絕身份驗證嘗試。謝謝。
2 回答

aluckdog
TA貢獻1847條經驗 獲得超7個贊
您使用的是標準環境還是靈活環境。在我們的例子中,我們使用了靈活的 env 和 google smtp 郵件。它對我們來說工作得很好。而且我懷疑您的問題與谷歌郵件帳戶的第三方訪問檢查有關。啟用此選項后嘗試相同的 smtp,以便您的應用程序能夠訪問 gmail smtp。
從 smtp 正在使用的帳戶的屏幕截圖中顯示的設置打開訪問權限
雖然 sendgrid 是一個不錯的郵件服務。但我們只喜歡 google smtp。

BIG陽
TA貢獻1859條經驗 獲得超6個贊
我一直在嘗試多種配置以使其工作,但它沒有,所以我切換到另一個選項,我實現了sendGrid解決方案,谷歌云將它列為一種可能的替代方法,它是如此簡單,如此安全,并且從一開始就有效試圖。
添加回答
舉報
0/150
提交
取消