0

使用 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);
}

}

编辑:当内容(电子邮件正文)很小时收到电子邮件。当内容很大时,它不会被接收。

4

1 回答 1

0

这根本与java无关。

我用普通的电子邮件客户端测试了一封大电子邮件。看到了相同的行为:电子邮件发送正常,但由于某种原因我没有及时收到它。(我以前没有见过这种行为,但它是......)

于 2013-10-07T18:31:48.527 回答