【Java】メール送信と受信メール構成のタイムアウト時間

1452 ワード

まず、メールがタイムアウトしたらどうなるか、ずっとブロックされているか、もしあなたがマルチスレッドグループを使っているなら、申し訳ありませんが、あなたはずっとブロックされています.解決策はありますか?あります.
まずjavamailが提供するタイムアウトに関する3つのパラメータを知っておきます.
smtp
  • mail.smtp.connectionttimeout:接続時間制限、ミリ秒単位.メールサーバとの接続時間の長さについてです.デフォルトは無制限です.
  • mail.smtp.timeout:メールsmtp時間制限、ミリ秒単位.これはメールの読み取り時間の長さについてです.デフォルトは無制限です.
  • mail.smtp.writetimeout:メール送信時間制限、ミリ秒単位.メール送信時のコンテンツのアップロード時間の長さについて.デフォルトは無制限です.

  • このように類推して、まだ2種類あります
    imap
  • mail.imap.connectionttimeout:接続時間制限、ミリ秒単位.メールサーバとの接続時間の長さについてです.デフォルトは無制限です.
  • mail.imap.timeout:メールsmtp時間制限、ミリ秒単位.これはメールの読み取り時間の長さについてです.デフォルトは無制限です.
  • mail.imap.writetimeout:メール送信時間制限、ミリ秒単位.メール送信時のコンテンツのアップロード時間の長さについて.デフォルトは無制限です.

  • pop3
  • mail.pop 3.connectionttimeout:接続時間制限、ミリ秒単位.メールサーバとの接続時間の長さについてです.デフォルトは無制限です.
  • mail.pop 3.timeout:メールsmtp時間制限、ミリ秒単位.これはメールの読み取り時間の長さについてです.デフォルトは無制限です.
  • mail.pop 3.writetimeout:メール送信時間制限、ミリ秒単位.メール送信時のコンテンツのアップロード時間の長さについて.デフォルトは無制限です.

  •  
    デフォルトの無制限を設定しないでください.そうすると、向こうのサーバーに何か問題が発生したら、こちらに複数のスレッドが詰まっています.
    だから設定しなければならない.構成は簡単で、送信前と受信前の構成に時間を加えればいい.例えば
    Properties prop = new Properties();//    new,       
    
    prop.put("mail.smtp.connectiontimeout", "25000");//         
    prop.put("mail.smtp.timeout", "25000");//         
    prop.put("mail.smtp.writetimeout", "25000");//         

    そして問題は解決しました!その他の類推