2012-04-24 8 views
0

いつも私はsmtpホストに接続しようとしていますが、私のローカル交換サーバーのポート25で応答-1で失敗しましたが、Gmailのsmtpホストに接続してgmailから電子メールを送信できます。javamail APIを使用してsmtp接続が失敗していますか?

 Properties props = System.getProperties(); 
     props.put("mail.smtp.host", "localexchange.server.address"); 
     props.put("mail.from", "emailid"); 
     Session session = Session.getInstance(props, null); 

     try { 
      MimeMessage msg = new MimeMessage(session); 
      msg.setFrom(); 
      msg.setRecipients(Message.RecipientType.TO, 
           "emailid"); 
      msg.setSubject("JavaMail hello world example"); 
      msg.setSentDate(new Date()); 
      msg.setText("Hello, world!\n"); 
      Transport.send(msg); 
     } catch (MessagingException mex) { 
      System.out.println("send failed, exception: " + mex); 
     } 

答えて

-1

JavaMail FAQtips for debugging connection problemsです。あなたはそれらを試しましたか?

+0

はい、私はメールが私の交換サーバーにルーティングされていないと思うけど、私は交換サーバーにテルネットをうまくやり遂げることができます。私のプログラムはTTL(time to live)私のメールのために。 – RamIndani

+0

私が接続しているLANが別のネットワークにあり、交換が異なるネットワークにあることが判明しました。同じネットワーク上で両方のネットワークが接続されています(私の見通しは同じ交換で完璧です) – RamIndani

+0

JavaMailアプリケーションが動作していて、telnetは接続しますが、JavaMailは接続しません。何が起こっているのか分かりません。特定のアプリケーションだけが特定のリモートマシンに接続することを許可するファイアウォールがマシン上にある可能性はありますか?また、Outlookと比較する場合、OutlookはJavaMailが使用するインターネット標準プロトコルではなく、Microsoft独自のプロトコルを使用することが多いことに注意してください。 Exchangeサーバーがこれらのインターネット標準プロトコルをサポートするように設定されていることを確認してください。 –

0

まず、使用しているシステムのSMTPサーバーポートが開いているかどうかを確認します。

あなたは

Windowsが開始----実行---- CMD ---タイプ 'のTelnet(SMTPサーバIP)(PORT)' ヒットが

を入力してください--- Telnetコマンドでこれを確認することができます
+0

はい私はsmtpサーバにtelnetできる – RamIndani

0

mail.smtp.debugプロパティをtrueに設定して、実際のSMTPセッションデバッグテキストを取得します。コマンドプロンプトからデバッグ出力を読み取るか、ファイルに出力するように設定することができます。

あなたの認証方法が許可されているかどうか確認してください。 AUTHの後に、許可された認証オプション(GSSAPI、DIGEST-MD5、PLAIN、LOGIN)が必要です。

AUTHに届かない場合は、間違ったポートを使用している可能性があります。通常:TLS

ため

  • SMTPのための25
  • SSL用465
  • 587デバッグ出力を投稿する場合、我々は、おそらくいくつかのより多くのヒントを提供することができます。

関連する問題