Seguridad en Javamail


Estoy investigando si Javamail es threadsafe, en particular en una situación con muchas sesiones correspondientes a diferentes usuarios, varios servidores SMTP y el uso de crear mensajes MIME y el uso del método transport.sendMessage. Sé que Javamail está orientado hacia el uso de escritorio, lo que me hace sospechar que puede no haber sido construido con threading en mente, y me pregunto si alguien tiene tal experiencia.

Author: djechlin, 2012-10-04

2 answers

Es cierto que las reglas de seguridad del hilo para JavaMail no están bien documentadas, pero esperamos que en su mayoría coincidan con lo que esperarías.

Múltiples hilos pueden usar una sesión.

Dado que un Transporte representa una conexión a un servidor de correo, y solo un subproceso puede usar la conexión a la vez, un Transporte sincronizará el acceso desde múltiples subprocesos para mantener la seguridad del subproceso, pero realmente solo querrá usarlo desde un solo subproceso.

Del mismo modo, se puede utilizar una tienda por múltiples hilos, pero el acceso a la conexión subyacente se sincronizará y un solo hilo.

Un mensaje solo debe ser modificado por un solo hilo a la vez, pero varios hilos deben ser capaces de leer un mensaje de forma segura (aunque no está claro por qué querría hacer eso).

Espero que eso ayude...

 58
Author: Bill Shannon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-04 18:16:17

Los hilos de javamail dispatcher no parecen tener tiempo de espera si el servidor no responde a tiempo. esto conduce al bloqueo en todos los hilos disponibles.

Probó este comportamiento con 1.4.3 y 1.4.5.

 1
Author: Nirmala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-08 07:45:32