我的 server.xml 中有以下配置
<Resource name="mail/Session"
auth="Container"
type="javax.mail.Session"
mail.transport.protocol="smtp"
mail.smtp.starttls.enable = "true"
mail.smtp.socketFactory.class = "javax.net.ssl.SSLSocketFactory"
mail.smtp.socketFactory.port="465"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.user="xyz@gmail.com"
mail.smtp.auth="true"
password="xyz"
/>
这是完美的工作。但是如果我把它改成我的雅虎账户 在 smtp.mail.yahoo.com 使用用户名和密码,然后我一直在验证失败。
为什么会这样?我应该在 yahoo 上启用某些功能还是我做错了什么?
最佳答案
耶!你是对的。这是在您的电子邮件帐户设置中启用某些功能的游戏。您的 server.xml 设置中的一切都很好。只有您需要为 “安全性较低的应用程序” 提供访问权限,因为 gmail 会阻止安全性较低的应用程序抛出身份验证异常。因此,只需在 https://myaccount.google.com/lesssecureapps 处启用“不太安全的应用程序访问”并将适用于 gmail。
既然你说gmail可以用,那你肯定已经做过这个设置了。
因此,您只需要为“yahoo”帐户找到允许访问权限,就像您为 gmail 帐户所做的那样。您可以在 http://help.inspectionsupport.net/isn-settings/enable-less-secure-apps-for-smtp-use-isn-yahoo-mail 上执行此操作或 来自官方网站 https://help.yahoo.com/kb/SLN27791.html .此设置位于页面底部。
这应该适合你。
关于java - 可以从 gmail 发送电子邮件,但不能从 yahoo 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54085879/