0

smtpホストに接続しようとすると、ローカルExchangeサーバーのポート25で応答-1で接続が失敗したことが示されますが、gmail smtpホストに接続して、以下のコードを使用しているgmailからメールを送信できます。

        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);
        }
4

3 に答える 3

0

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

これはTelnetコマンドで確認できます

Windows---start----run----cmd---type 'Telnet (SMTP SERVER IP) (PORT)' Enter キーを押します

于 2012-05-03T13:02:39.660 に答える
0

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

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

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

  • SMTP の場合は 25
  • SSL の場合は 465
  • TLS の場合は 587

デバッグ出力を投稿していただければ、おそらくさらにヒントを提供できます。

于 2014-01-16T22:08:55.323 に答える
-1

JavaMail FAQには、接続の問題をデバッグするためのヒントがあります。やってみましたか?

于 2012-04-24T17:08:31.340 に答える