2016-09-05 3 views
0

私のjavaアプリケーションから、私はSSLを使用して電子メールを送信しようとしています。私はエラーを得続けるJavaメール例外。 SMTPホストに接続できませんでした:localhost、port:25;

SMTPホストに接続できませんでした:ローカルホスト、ポート:25;

次のコードを使用しようとしました。

Properties props = new Properties(); 
props.put("mail.smtps.auth", "false"); 
props.put("mail.smtps.host", host); 
props.put("mail.smtps.socketFactory.port", "465"); 
props.put("mail.smtps.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
props.put("mail.smtps.starttls.enable", "true"); 
props.put("mail.transport.protocol", "smtps"); 

Session session = Session.getInstance(props); 

しかし、私は次のコードを使用している場合、それだけで正常に動作します:

Properties props = new Properties(); 
props.put("mail.smtp.auth", "false"); 
props.put("mail.smtp.host", host); 
props.put("mail.smtp.socketFactory.port", "25"); 
props.put("mail.transport.protocol", "smtp"); 

Session session = Session.getInstance(props); 

変数hostがIPアドレスであるので、私はそれは奇妙だと思う私はlocalhostに接続できないエラー状態私がlocalhostに接続していないときに、ポートがでないときに、にある。

SMTPS SSLを使用し、SMTPではなくメールを送信できるようにする必要があります。 私のコードに何か問題がありますか?すべてのプロパティがmail.smtps.*名前が付けられていたよう

+0

をどのようにあなたのトランスポートインスタンスを作成するのですか? –

+0

あなたはTransport transport = session.getTransport( "smtps");を呼び出しますか? –

+0

はい、私は今トランスポートtransport = session.getTransport( "smtps")を使用しています。新しいエラーは、アプリケーションが必要な証明書を見つけることができないということです。私はどのように自己署名SMIME証明書を作成するのですか? –

答えて

2

、次のようにあなたのTransportインスタンスを取得することを確認してください:

Transport transport = session.getTransport("smtps"); 

デバッグしようとしている間に、また、より詳細なログを取得するために、デバッグモードにsession.setDebug(true)のおかげでの切り替えを検討。

0

あなたは、SMTPのポートを設定するのを忘れ:ここ

props.put("mail.smtp.port", String.valueOf(port)); 

チェックプロパティ情報: JavaMail summary

関連する問題