1

那么有人可以告诉我,当Transport.send()提供了一个 NULL Session 对象时,Java 的行为如何?我在 Java Mail API 中看到了这个错误,其中一个 EMail 是用一个 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?!

PS: 为什么我还在工作的时候不开心?何必?好吧-实际上我正在建立的邮件会话是使用 James 服务器。由于没有与 James 的 JNDI 建立会话,因此服务器以某种方式将电子邮件发送到“外部世界”到实际的用户 ID。这是测试环境,不打算向实时用户发送电子邮件。

4

1 回答 1

1

来自 Java Mail 源代码:

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

如果消息会话为空,则它使用System.getProperties()创建默认会话

于 2013-10-21T15:42:06.347 回答