- アレク
- ベテラン
- 会議室デビュー日: 2002/10/23
- 投稿数: 97
|
投稿日時: 2007-07-27 23:40
テスト環境で問題なく動いていたメール送信プログラムを本番環境のサーバに
移動したところ以下のエラーが出て送信が出来なくなってしまいました。
コード: |
|
exception
javax.servlet.ServletException: Sending failed;
nested exception is:
javax.mail.MessagingException: Could not connect to SMTP host: hogehoge.com, port: 25
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
jp.tamax.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:169)
root cause
javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: Could not connect to SMTP host: hogehoge.com, port: 25
javax.mail.Transport.send0(Transport.java:219)
javax.mail.Transport.send(Transport.java:81)
jp.tamax.contents.inquiry.InquiryConfirmUnit.executeSendMail(InquiryConfirmUnit.java:149)
jp.tamax.contents.inquiry.InquiryConfirmUnit.execute(InquiryConfirmUnit.java:57)
jp.genux.WebUnit.ContentsCommonAction.execute(ContentsCommonAction.java:34)
jp.genux.WebUnit.ContentsTemplateAction.execute(ContentsTemplateAction.java:30)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
jp.tamax.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:169)
|
デバッグのログは以下の通りです。
コード: |
|
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG: SMTPTransport trying to connect to host "hogehoge.com", port 25
DEBUG SMTP RCVD:
DEBUG: SMTPTransport could not connect to host "hogehoge.com", port: 25
Jul 27, 2007 10:43:28 PM org.apache.struts.action.RequestProcessor processException
WARNING: Unhandled Exception thrown: class javax.mail.SendFailedException
|
メールサーバの方に問題があるのかと思いましたが、メーラーではちゃんと送受信できていますし、
他のメールサーバに切り換えてみてもやはり同様の結果でした。
テスト環境では同じプログラムで送信できていましたし、
本番環境用のサーバに何か問題があるのかと思いますが、念のためにコードも記載しておきます。
コード: |
|
private void executeSendMail(String to, String from) throws Exception
{
String subject = "";
String message = createMessage();
Properties props = System.getProperties();
props.put("mail.smtp.host", "hogehoge.com");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, new MyAuth());
session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
InternetAddress toList[] = InternetAddress.parse(to, false);
msg.addRecipients(MimeMessage.RecipientType.TO, toList);
InternetAddress fromAddress = new InternetAddress(from);
msg.setFrom(fromAddress);
msg.setSubject(subject,"ISO-2022-JP");
MimeMultipart mm = new MimeMultipart("alternative");
MimeBodyPart mbText = new MimeBodyPart();
mbText.setText(message.replaceAll("<BR>", "\n"),"ISO-2022-JP");
mm.addBodyPart(mbText);
MimeBodyPart mbHtml = new MimeBodyPart();
mbHtml.setContent(message, "text/html; charset=ISO-2022-JP");
mm.addBodyPart(mbHtml);
msg.setContent(mm);
Transport.send(msg);
}
|
本番環境用のサーバも特別普通のサーバと変わるものではありません。
違うと言えば SSL に対応していることぐらいですが、何か関係あるでしょうか?
お気付きの点ありましたら、ご指摘頂けると幸いです。
よろしくお願いいたします。
|