Я трачу несколько дней, чтобы выяснить, как настроить javax.mail.Session в Tomcat через JNDI с аутентификацией , теперь я получаю его, но только после глубокого погружения в код.
За это время я видел худший код: javax.mail.Service # connect (String, String, String, String) Версия 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();
}
Когда назначается пароль?и почему он дважды проверяется на ноль?- а затем понимаете, что остальное не относится к описанному выше.(Это оригинальный отступ).Вернуться к теме.
По крайней мере, я обнаружил, что правильное определение ресурса:
<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"
/>
Обратите внимание на то, что это «пароль» и «mail.smtp.пользователь «или« mail.user », но не« mail.smtp.password »или« пользователь ».
По крайней мере, волшебство сделано в Tomcats org.apache.naming.factory.MailSessionFactory
.Эта фабрика добавляет javax.mail.Authenticator
к сеансу почты, если свойство password
и свойство mail.smtp.user
или mail.user
выходят.
Теперь мой вопрос: где находится документация для всего этого?,Особенно о конфигурации имени пользователя и пароля?
Кстати: я объяснил это немного более подробно, чтобы помочь другим, как есть такая же проблема.