Java を使用すると、おもちゃのスタンドアロン クラス (ハードコードされたデータを含む) から完全に問題なく電子メールを送信でき、数秒で電子メールを受信できます。
ただし、まったく同じコードがサーブレットのコンテキストで呼び出されると、コードは失敗せずに実行されますが、実際には電子メールを受信しません。
それはどうしてですか?サーブレット環境について何か特別なことはありますか? 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);
}
}
編集: 内容 (メール本文) が小さい場合にメールが受信されます。コンテンツが大きい場合、受信されません。