使用 Java,我可以非常好地从玩具独立类(带有硬编码数据)发送电子邮件,并在几秒钟内收到电子邮件。
但是,当在servlet 的上下文中调用完全相同的代码时,代码执行不会失败,但我实际上并没有收到电子邮件。
怎么可能?servlet 环境有什么特别之处吗?我正在运行 Tomcat 6、JRE 1.5。
这是代码(我已经编辑了我的数据):
public void sendEmail(String aSubject, String aBody){
Properties props = new Properties();
props.put("mail.host", "smtp.blah.ca");
props.put("mail.from", "from-blah@blah.ca");
Session session = Session.getDefaultInstance(props, null /*no authenticator*/);
System.out.println("JRE" + System.getProperty("java.version"));
System.out.println(session.getProperties());
MimeMessage message = new MimeMessage(session);
try {
message.addRecipient(
Message.RecipientType.TO, new InternetAddress("to-blah@blah.com")
);
message.setSubject(aSubject);
message.setText(aBody);
Transport.send(message);
}
catch (MessagingException ex){
System.err.println("Cannot send email. " + ex);
}
}
编辑:当内容(电子邮件正文)很小时收到电子邮件。当内容很大时,它不会被接收。