- PR -

JavaMailでのSMTP送信時の553エラーについて

1
投稿者投稿内容
らいむ
会議室デビュー日: 2006/09/12
投稿数: 2
投稿日時: 2006-09-12 15:58
JavaMail(API)を利用してSMTPでメール送信をしようとしています。

その際、下記エラーが発生します。

------------------------------------------------------------------------------
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1196)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:584)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at eip.admin.ActEmlSendHen.send_mail(ActEmlSendHen.java:112)
at eip.admin.EmlsendHen.doPost(EmlsendHen.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java)
at javax.servlet.http.HttpServlet.service(HttpServlet.java)
at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:534)
at org.apache.tomcat.core.Handler.invoke(Handler.java:280)
at org.apache.tomcat.core.Handler.service(Handler.java:193)
at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:445)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:874)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:790)
at org.apache.coyote.tomcat3.Tomcat3Adapter.service(Tomcat3Adapter.java:64)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
at java.lang.Thread.run(Thread.java:534)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1047)
... 19 more
------------------------------------------------------------------------------

認証の関係で先に受信をしないとだめなのかと思い、受信(pop3)をしてから送信(SMTP)にしてみました。
しかし、受信ではエラーとなっていないようなのですが、
●Transport.send(mimeMessage);
で上記のようなエラーとなってしまいます。

------------------------------------------------------------------------------
try {
// 初期設定
Properties props = new Properties();
props.put("mail.smtp.host", "mail.xxxxx.co.jp");
props.put("mail.smtp.port", String.valueOf("25"));
props.put("mail.host","mail.xxxxx.co.jp"); // 接続するホスト名

Session sess = Session.getDefaultInstance(props, null);

// 接続
Store store;
store = sess.getStore("pop3");

try {
//ホスト・プロトコル・ユーザ名・パスワード
store.connect("mail.xxxxx.co.jp", 110, "xxxxx", "xxxxx");

Folder rootFolder = store.getDefaultFolder();
Folder inbox = rootFolder.getFolder("INBOX"); // これのみ
inbox.open(Folder.READ_ONLY);

Message[] messages = inbox.getMessages(); // 全部取得

inbox.close(false); // メールは消さない
//store.close();
} catch(MessagingException e){
e.printStackTrace();
return false;
}

// まずSMTPサーバを設定してメール送信を初期化します。

// Session session = Session.getDefaultInstance(props, null);
MimeMessage mimeMessage = new MimeMessage(sess);
// 送信元メールアドレスと送信者名を指定
mimeMessage.setFrom(new InternetAddress("xxxx@xxxxx.co.jp", "らいむ","iso-2022-jp"));
// 送信先メールアドレスを指定
mimeMessage.setRecipients(Message.RecipientType.TO, "xxxx@xxxx.co.jp");
// メールのタイトルを指定
mimeMessage.setSubject("SendMailでファイル添付!" , "iso-2022-jp");

// 件名
mimeMessage.setSubject("メールテスト","ISO-2022-JP");

// 本文
mimeMessage.setText("こんにちは","ISO-2022-JP");

// メール送信
Transport.send(mimeMessage);


} catch (Exception e) {
e.printStackTrace();
//例外処理
ls_msg = "システム例外発生";
eipz920e z920e = new eipz920e(this.getClass().getName() ,ls_msg , "none", request);
// システムエラー画面(apply_err.html)へ
String encodedURL =
response.encodeRedirectURL(HttpsDetail.getHttpsURL("apply_err.html"));
return false;
}

------------------------------------------------------------------------------

メールアドレス・アカウント名・パスワードは受信時にはエラーがないのですが、
SMTPでエラーとなっています。
今回の使用しているSMTPの場合は送信時にもアカウント名・パスワードの認証が必要との
ことなのですが、受信時の設定はSroreで可能だとわかったのですが、送信時にはMimeMessageの何を使えば
アカウント名・パスワードを設定できるのでしょうか?

どなたかご教授をよろしくお願い致します。

[ メッセージ編集済み 編集者: らいむ 編集日時 2006-09-12 16:26 ]

[ メッセージ編集済み 編集者: らいむ 編集日時 2006-09-12 18:15 ]
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-09-12 16:44
"mail.smtp.auth"プロパティかな?
とか適当に言ってみる。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-09-13 12:27
[quote]
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
[quote]

SMTPサーバの設定で、リストに無いSMTPサーバにメール転送しようとすると発生した
ことが昔ありまして、どこにでも転送できる設定にしたらでエラーが出なくなった
経験がありましたよ。
らいむ
会議室デビュー日: 2006/09/12
投稿数: 2
投稿日時: 2006-09-13 12:51
ご教授、大変にありがとうございます。

みなさんに戴いたヒントを元に試したら送信できました。

●props.put("mail.smtp.auth","true");
●Transport認証用ユーザ名とパスワードを設定しコネクト
 xxx.connect(null,"xxxx(アカウント名)","xxxxxx(パスワード)");
●send → sendMessageへの変更
xxx.sendMessage( mimeMessage,mimeMessage.getFrom());

にすることでPOP3の受信をしなくてもOKでした。

------------------------------------------------------------------
// 初期設定
Properties props = new Properties();
// 接続するSMTP
props.put("mail.smtp.host", "xxxx.xxxx.co.jp");
// SMTP before POP3対応
props.put("mail.smtp.auth","true");
// JavaMailのデバッグモード
props.put("mail.debug", "true");
// ポートの設定
props.put("mail.smtp.port", String.valueOf("25"));
// 接続するホスト名
props.put("mail.host","xxxx.xxxx.co.jp");
Session sess = Session.getInstance (props);

MimeMessage mimeMessage = new MimeMessage(sess);
// 送信元メールアドレスと送信者名を指定
mimeMessage.setFrom(new InternetAddress("xxxx@xxxx.co.jp", "○○○○","iso-2022-jp"));

// 送信先メールアドレスを指定
mimeMessage.setRecipients(Message.RecipientType.TO, "xxxxxx@xxxx.co.jp");

// 件名
mimeMessage.setSubject("メールテスト","iso-2022-jp");

// 送信日時
mimeMessage.setSentDate( new Date());

// 本文
mimeMessage.setText("こんにちは、テスト送信。\n改行される?\n","iso-2022-jp");

Transport transport = sess.getTransport("smtp");
// 認証用ユーザ名とパスワードを設定しコネクト
transport.connect(null,"xxxx(アカウント名)","xxxxxx(パスワード)");
// メール送信
//transport.sendMessage( mimeMessage,mimeMessage.getFrom()); <--- 間違い ToとBccに届かない
transport.sendMessage( mimeMessage,mimeMessage.getAllRecipients());
// クローズ
transport.close();
------------------------------------------------------------------

ご教授、ありがとうございました<(_ _)>



[ メッセージ編集済み 編集者: らいむ 編集日時 2006-09-15 14:44 ]
1

スキルアップ/キャリアアップ(JOB@IT)