2017-05-18 10 views
0

私はAndroid用JavaMailを使用しています。私は "INBOX"と "SENT"フォルダからメッセージを取得したいと思います。 "INBOX"フォルダ名は、すべてのメールクライアントで同じですが、異なるクライアントに固有の "SENT"フォルダ名です。 「SENT」フォルダをどのようにしてすべてのクライアントで動作させることができるかを教えてください。javamailを使ってgmail、yahooなどのメールの「送信済み」フォルダを取得する方法は?

+0

これは、HTTPS .... uのを助けるかもしれない://www.tutorialspoint.com/javamail_api/javamail_api_folder_management.htm – amrit

答えて

1

IMAP standard for thisがありますが、広く実装されていません。それがないと、ユーザーに送信済みメールボックスの名前を尋ねる必要があります。また、一般的なメーラーで使用されている名前を確認することで、見つけようとするヒューリスティックを含める必要があります。

+0

は返事をありがとうございましたが、私は誰もがIMAPS基準を使用しないことを知っています。 – user1480210

0

多くの調査の後、私はすべてのメールクライアントでうまくいくと思う解決策を見つけました。 この例では、属性を使用して送信フォルダを取得する方法を示しています。

for (Folder folder : folderList) { 
      String[] attributes = ((IMAPFolder) folder).getAttributes(); 
      for (String attr : attributes) { 
       if (attr.toLowerCase().contains("sent")) 
        return folder; 
      } 
     } 
+0

これは私が上で述べたヒューリスティックの一種であり、フォルダの名前が別の言語でローカライズされていれば機能しません。また、(例えば)不在、同意、同意、現在、再送信などの名前のフォルダに対しても誤検出が発生します。 –

関連する問題