Tomcat中JNDI的Java Mail API配置文档

我花了几天的时间来弄清楚如何通过JNDI在Tomcat配置 java

x.mail.Session并进行身份验证,现在我得到了它,但只是在深入研究代码之后.

在这段时间里,我看到了有史以来最糟糕的代码:javax.mail.Service #connect(String,String,String,String)Version 1.4.1

if (user == null) {
    user = url.getUsername();
    if (password == null)   // get password too if we need it
        password = url.getPassword();
    } else {
    if (password == null && user.equals(url.getUsername()))
        // only get the password if it matches the username
        password = url.getPassword();
    }

密码何时分配?为什么两次检查null? – 然后意识到其他不属于if if. (这是原始的缩进).回到主题.

至少我发现正确的资源定义是:

<Resource name="email/session"
    type="javax.mail.Session"
    auth="Container"
    password="secret"

    mail.debug="false"
    mail.transport.protocol="smtp"

    mail.smtp.auth="true"
    mail.smtp.user="testi"
    mail.smtp.host="smtp.xxx.org"
    mail.smtp.from="test@example.com"       
    />

请注意它是“password”和“mail.smtp.user”或“mail.user”而不是“mail.smtp.password”或“user”.

至少魔术是在Tomcats org.apache.naming.factory.MailSessionFactory中完成的.如果属性密码和属性mail.smtp.user或mail.user退出,则此工厂将javax.mail.Authenticator添加到邮件会话.

现在我的问题是所有这些东西的文档在哪里.特别是关于用户名和密码的配置?

顺便说一句:我解释得更详细一些,以帮助其他人如何解决同样的问题.

原文 

https://codeday.me/bug/20190111/502566.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Tomcat中JNDI的Java Mail API配置文档

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址