0

Exchange Server 2010 からメールを読み取ろうとしていますが、接続が確立されることもありますが、残りの時間はプログラムで以下の例外が発生します。

javax.mail.AuthenticationFailedException: ログインに失敗しました

コードは Exchange Server 2007 で正常に動作しています。しかし、メールボックスが 2010 に移行された時点から、プログラムはこの方法でのみ動作しています。

ネットで利用可能ないくつかのオプションも試しましたが、何も機能していません。javamail-1.4.4 API バージョンを使用しています。これは、メールボックスに接続しようとしているコードです。

   public class ReadMail {

 static Store store=null;
    static String host="";
    static String username="";
    static String password="";


public static void main(String[] arg) throws Exception{
      try{
          Session session;
          username = "username";
          password = "password";
              host = "hostname";
          Properties props = System.getProperties();
          props.setProperty("mail.smtp.auth","true");
          session = Session.getInstance(props, 
                                    new ExchangeAuthenticator(username, password));
          Store st = session.getStore("imaps");
          st.connect(host,username, password);
          System.out.println("Connected");

    }
      catch (Exception e){
          e.printStackTrace(System.out);
      }
}

}


public class ExchangeAuthenticator extends Authenticator {

    String user;
    String pw;

    public ExchangeAuthenticator (String username, String password)
    {
       super();
       this.user = username;
       this.pw = password;
    }
    public PasswordAuthentication getPasswordAuthentication()
    {
      return new PasswordAuthentication(user, pw);
    }
}
4

3 に答える 3

3

コードでも同じ問題に直面しています。コードに2つのプロパティを設定して、プレーンテストを無効にし、NTLMを有効にします

props.setProperty("mail.imap.auth.plain.disable","true"); props.setProperty("mail.imap.starttls.enable", "true");

私のコードは交換サーバーに接続できるようになりました

それを読んで

https://forums.oracle.com/forums/thread.jspa?threadID=1587688

于 2012-12-07T07:43:06.133 に答える
0

おそらく、サーバーの構成が変更され、資格情報を受け入れなくなったか、JavaMail がサポートするログイン方法をサポートしなくなった可能性があります。

セッションのデバッグをオンにして、プロトコル トレースを調べます。なぜ失敗したのかについての手がかりを提供するはずです。

また、必要に応じて NTLM 認証のサポートが組み込まれている JavaMail 1.4.5 にアップグレードすることもできます。

于 2012-07-27T18:41:20.823 に答える
0

資格情報に問題がない場合でも、新しいサーバーがログイン方法を受け入れない場合があります。たとえば、新しいサーバーでは「プレーン」認証が許可されない場合があります。

デバッグ情報には、受け入れられる認証方法が表示されます。

于 2014-01-22T21:32:31.543 に答える