Transport.send Java Mail работает даже с нулевым mailSession

Так может ли кто-нибудь сказать мне, как ведет себя Java, когда Transport.send() предоставляется с объектом NULL Session? Я вижу эту ошибку с Java Mail API, когда электронная почта отправляется с объектом NULL MailSession.

//Some code here
Session mailSession = null;

mailSession = getMailSession(); //This returns NULL
MimeMessage message = new MimeMessage(mailSession);

// some more code here to set FROM/To/Subject/content

Transport.send(message); //This still fires mail?!

P.S. Почему я не доволен тем, что он все еще работает? Зачем беспокоиться? Что ж, на самом деле почтовый сеанс, который я устанавливаю, связан с сервером James. Поскольку сеанс не установлен с помощью JNDI Джеймса, сервер каким-то образом отправляет электронное письмо во «внешний мир» на фактический идентификатор пользователя. Это тестовая среда, и она не предназначена для отправки электронной почты действующему пользователю.


person vikkee    schedule 21.10.2013    source источник


Ответы (1)


Из исходного кода Java Mail:

Session s = (msg.session != null) ? msg.session :
             Session.getDefaultInstance(System.getProperties(), null);

Если сеанс сообщений пуст, то он создает сеанс по умолчанию, используя System.getProperties. ()

person Alfredo Osorio    schedule 21.10.2013
comment
Спасибо, поэтому мне нужно проверить, какая конфигурация по умолчанию для моего сервера приложений. - person vikkee; 21.10.2013