Java Mail';s Transport.send即使在使用null mailSession时也能工作
那么,有人能告诉我当Transport.send()提供了一个空会话对象时,Java是如何工作的吗?我在JavaMailAPI中看到了这个错误,其中一封电子邮件使用空的MailSession对象发送Java Mail';s Transport.send即使在使用null mailSession时也能工作,java,jakarta-mail,james,Java,Jakarta Mail,James,那么,有人能告诉我当Transport.send()提供了一个空会话对象时,Java是如何工作的吗?我在JavaMailAPI中看到了这个错误,其中一封电子邮件使用空的MailSession对象发送 //Some code here Session mailSession = null; mailSession = getMailSession(); //This returns NULL MimeMessage message = new MimeMessage(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服务器。由于会话不是用James的JNDI建立的,服务器以某种方式将电子邮件发送到“外部世界”到实际用户id。这是测试环境,不打算向实时用户发送电子邮件 来自Java邮件源代码:
Session s = (msg.session != null) ? msg.session :
Session.getDefaultInstance(System.getProperties(), null);
如果消息会话为空,则它使用Java Mail源代码中的创建默认会话:
Session s = (msg.session != null) ? msg.session :
Session.getDefaultInstance(System.getProperties(), null);
如果消息会话为空,则它将使用谢谢创建默认会话,因此我必须检查我的应用程序服务器的默认配置。谢谢,因此我必须检查我的应用程序服务器的默认配置。