當我需要在特定時刻發(fā)送郵件時,我目前正在開發(fā)一個 Spring Boot 應(yīng)用程序,所以我使用javax.mail api 來執(zhí)行此操作,該程序在本地機器上運行良好,但是當我在谷歌云中部署應(yīng)用程序時應(yīng)用程序引擎,我不斷收到以下錯誤: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"; }發(fā)件人郵件在授權(quán)郵件發(fā)件人列表中,一切都已正確配置,應(yīng)用程序響應(yīng)所有請求,但在發(fā)送郵件步驟時一直失敗。我在發(fā)件人 gmail 帳戶上啟用了安全性較低的應(yīng)用程序身份驗證選項,但它一直拒絕身份驗證嘗試。謝謝。
2 回答

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

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