2012-03-31 14 views
4

電子メールアプリケーションの変更を同期して変更し、サーバー電子メールの自動変更を変更したいと思います。例: - 私は電子メールアプリケーションで未読メッセージを読んだ後、自動サーバー電子メールは未読メールを読んでメールを読むように変更しました。AndroidメールでJavaメールを使用してアプリケーションメールをサーバー電子メールに同期する方法

私の電子メールアプリケーションがサーバーの電子メールへの接続の電子メールアプリケーションのために使用されているメールのjarファイル、activation.jarの、追加のjarファイルを使用 、次のコードを使用してい...

Properties props = System.getProperties(); 
      props.setProperty("mail.store.protocol", "imaps"); 
      props.put("mail.smtp.starttls.enable","true"); 
      Authenticator auth = new Authenticator() { 
       protected PasswordAuthentication getPasswordAuthentication(){ 
        return new PasswordAuthentication("USEREMAILID","PASSWORD "); 
        } 
      }; 
      sessioned= Session.getDefaultInstance(props, auth); 
      store = sessioned.getStore("imaps"); 
      store.connect("smtp.gmail.com","USEREMAILID","PASSWORD "); 
      inbox = store.getFolder("inbox"); 
      inbox.open(Folder.READ_ONLY); 
      FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); 
      UNReadmessages = inbox.search(ft); 
+0

メールをローカルに保存するサーバとローカルドライブの間で同期の処理を扱うソースコード全体を記述できますか? –

答えて

4

私はこの問題を解決しました。
以下のコードを使用して、実行時に接続を切断しないでください。

inbox.open(Folder.READ_WRITE); 
2

あなたはこの中をやっている場合ストアが接続され、フォルダが開いている「オンライン」は、JavaMail APIを介して行った変更がすぐにサーバーに反映されます。メッセージの読み取りまたは未読をマークするユーザーインターフェイスアクションが、対応するJavaMail操作を実行することを確実にするのは、ユーザーとプログラムのロジックです。

特に「読み取り」の場合、メッセージの内容を取得すると、サーバーはメッセージを読み取り済みとしてマークします。これ以外の明示的な操作は必要ありません。

アプリケーションが「オフライン」のときにこれをすべて実行し、次回のオンライン時に再同期化したい場合は、はるかに難しいです。 JavaMail FAQには、それを助けるためのいくつかの指針があります。

関連する問題