2017-03-07 8 views
0

私は、javax.mailを使用してメールを送信しようとしています。これは私のコードです:間違ったホスト送信SMTP

Properties props = new Properties();   
props.setProperty("mail.smtp.host", host); 
props.setProperty("mail.smtp.port", port); 
props.setProperty("mail.user", user); 
props.setProperty("mail.password", password); 

Session session = Session.getDefaultInstance(props); 

しかし、私はこのエラーを取得する:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.wrong.server.com, port: 25; 

面白いことに、「smtp.wrong.server.comは」私のように渡している値ではないということですホスト。

これはSession.getDefaultInstance(props)のように、間違ったホスト名で既に作成されたセッションを返しています。

私のEARの中には、javax.mailが使用されている場所はありません(少なくとも私のコードではなく、おそらく第三者に依存しているかもしれません)。

この現象は、もちろん、PRO環境でのみ発生します。 DEVとTEST envにデプロイされた同じEARがうまく動作します。

すべてのヘルプは、それはあなたがあなたのproertiesのための正しいキーを使用していない縫い目

+0

正しいプロパティをロードしていることを確認するには、割り当て後に印刷してください。 – Maverick

+0

JavaMail FAQの[一般的なJavaMailの間違い](http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes)を参照してください。 –

答えて

0

のJavadocを参照してください。私は、javadocツールからSession.getInstance

を使用する必要があります。

getDefaultInstance

(...)デフォルトのセッションは、同じJava仮想マシンで実行中のすべてのコードに潜在的に利用可能です(...)その後の呼び出しでは、最初の呼び出しで作成されたSessionオブジェクトが返され、渡されたPropertiesオブジェクトは無視されます。 getInstanceメソッドを使用して、メソッドが呼び出されるたびに新しいSessionオブジェクトを取得します。

0

をいただければ幸いです。問題がSession.getDefaultInstanceとあったjavax.mail.Session

It is expected that the client supplies values for the properties listed in Appendix A of the JavaMail spec (particularly mail.store.protocol, mail.transport.protocol, mail.host, mail.user, and mail.from) as the defaults are unlikely to work in all cases.

関連する問題