Estoy investigando si Javamail es seguro para los hilos, en particular en una situación con muchas sesiones correspondientes a diferentes usuarios, varios servidores SMTP y el uso de la creación de mensajes MIME y el uso del método transport.sendMessage
. Sé que Javamail está orientado hacia el uso de computadoras de escritorio, lo que me hace sospechar que puede que no se haya construido teniendo en cuenta el enrutamiento, y me pregunto si alguien tiene esa experiencia.Threadsafety en Javamail
Respuesta
Es cierto que las reglas de seguridad de subprocesos para JavaMail no están bien documentadas, pero es de esperar que coincidan en su mayoría con lo que cabría esperar.
Varios hilos pueden usar una Sesión.
Dado que un transporte representa una conexión a un servidor de correo, y solo un hilo puede usar la conexión a la vez, un transporte sincronizará el acceso desde múltiples hilos para mantener la seguridad del hilo, pero realmente solo querrá usar desde un solo hilo.
De forma similar, un Almacén puede ser utilizado por varios hilos, pero el acceso a la conexión subyacente se sincronizará y rosca única.
Un mensaje solo debe modificarse con un solo subproceso a la vez, pero varios subprocesos deberían poder leer un mensaje de forma segura (aunque no está claro por qué querría hacer eso).
Espero que ayude ...
Los subprocesos de distribuidor JavaMail no parece que el tiempo de espera si el servidor no responde en el tiempo. esto lleva a bloquear todos los hilos disponibles.
Probó este comportamiento con 1.4.3 & 1.4.5.
- 1. JavaMail - javax.mail.MessagingException
- 2. JavaMail setDebug (verdadero)
- 3. JavaMail BaseEncode64 Error
- 4. Javamail api en android usando XOauth
- 5. ¿Qué hace props.put ("mail.smtp.host", host) en JavaMail?
- 6. ¿Es compatible JavaMail Server-push?
- 7. Uso de JavaMail con TLS
- 8. ¿Javamail es asíncrono o síncrono?
- 9. JavaMail: Mantener IMAPFolder.idle() con vida
- 10. Cómo cambiar el puerto de JavaMail
- 11. Error de autenticación de Javamail NTLM
- 12. JavaMail API, Gmail-Auth y setFrom
- 13. javax.net.ssl.SSLException al enviar correo usando JavaMail
- 14. Propiedades smtp de JavaMail (para STARTTLS)
- 15. Enviando correo electrónico en Android usando la API de JavaMail
- 16. Búsqueda de JavaMail por ReceivedDate, no funciona en el segundo?
- 17. ¿Cómo leer el correo electrónico de outlook con javamail?
- 18. JavaMail: cómo conseguir nuevos mensajes comparan con sellos de tiempo
- 19. ¿Puedo utilizar la API de JavaMail para un proyecto comercial?
- 20. ¿Es aceptable dejar abierta la sesión de javamail Transport?
- 21. ¿Por qué JavaMail Transport.send() es un método estático?
- 22. Uso de Javamail y Greenmail para SMTPS/SSL
- 23. ¿Cómo adjuntar múltiples archivos a un correo electrónico usando JavaMail?
- 24. Recuperar correos electrónicos no leídos de Gmail - JavaMail API + IMAP
- 25. ¿Cómo configuro un servidor de correo para usarlo con JavaMail?
- 26. JavaMail con la primavera - Las importaciones que faltan
- 27. El almacenamiento de datos en la tabla MySql a través de Javamail falló
- 28. javamail: ¿Cómo le digo a gmail que no me firme en el chat?
- 29. envía un correo electrónico en Android usando API JavaMail con SMTP, pero sin SSL
- 30. Leer el archivo de texto de Email convertir a Javamail MimeMessage
¿Aprendió esto del javadoc, las fuentes, de la experiencia? – ewernli
Escribí gran parte del código y lo mantengo todo. –
¡Felicitaciones! Como no había referencias que respaldaran tus explicaciones, me preguntaba cómo podrías ser tan asertivo. Ahora entiendo;) ¡Claramente, +1! – ewernli