Pregunta

Paso varios días para descubrir cómo configurar una sesión javax.mail.Session en Tomcat a través de JNDI con autenticación, ahora lo entiendo, pero solo después de profundizar en el código.

En este tiempo he visto el peor código jamás visto:javax.mail.Service#connect(Cadena,Cadena,Cadena,Cadena) Versión 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();
    }

¿Cuándo se asigna la contraseña?¿Y por qué se compara con nulo dos veces?– y luego darse cuenta de que el else no pertenece al if anterior.(Esta es la sangría original).Volver al tema.

Al menos descubrí que la definición correcta de recurso es:

<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"       
    />

Preste atención al hecho de que es "contraseña" y "mail.smtp.user" o "mail.user", pero no "mail.smtp.password" o "usuario".

Al menos la magia se hace en Tomcats org.apache.naming.factory.MailSessionFactory.Esta fábrica agrega un javax.mail.Authenticator a la sesión de correo si una propiedad password y una propiedad mail.smtp.user o mail.user salidas.

Ahora mi pregunta es ¿dónde está la documentación para todo eso?¿Especialmente sobre la configuración de nombre de usuario y contraseña?

Por cierto:Lo expliqué un poco más detalladamente para ayudar a otros que tienen el mismo problema.

¿Fue útil?

Solución

Otros consejos

Esto es simplemente un error en la documentación.Alguien ya ha planteado esto en el rastreador de errores de Tomcat.

https://bz.apache.org/bugzilla/show_bug.cgi?id=53665

Te sugiero que te registres y votes por el error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top