JavamailでGmailのお気に入りフラグをON/OFFしたい。
Java/Android/Eclipse環境でJavamailを使用したGmailクライアントを開発中です。
Gmailでは重要なメールを「☆」「★」で切り替えて表してますが
受信したメールメッセージのどのフラグをみれば星の状態を見ることが出来るのでしょうか?
非常に単純な質問で申し訳ありませんがネット上で上手く検索に引っかからなかったので質問してみました。
ご教授のほど宜しくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
GmailやThunderbird上のStarredは、
RFC2060規格上はFlaggedという名前のようだ。
http://tools.ietf.org/html/rfc2060
サンプルを参考にした
ユーザー名とパスワードをソースにベタ書きするわけにもいかず、
標準入力から、ユーザー名(Gmailの場合@gmail.comも含む)とパスワードを入力し、
その最初のメールの星の状態をMessage.getFlagsとMessage.setFlagを用い、実行するごとにON/OFFを入れ替えるようにしています。実行後の確認でブラウザを開いたままにしている場合、更新ボタン押すのを忘れずに。
#質問者がある程度のレベルにあることを前提にしている。
##最初に書いたのはsetFlagのみだった。ある程度のレベルならgetFlagメソッドだろうという想像を付けてもらえるとは思うのだが、人によってはそのまま書いてくれないとわからんとごねられてげんなりすることが。一応対策に両方使ってみたけど、余計複雑になって悩む。っていうかそのレベルの人だと標準入力出力の地点で詰むからなぁ(ぶつぶつ…
#Windows XP上からJava + JavaMail APIを用いて、操作しています。(IMAP4を利用)
#少なくとも前記環境ではうまくいっていますが、Android自身をもっていないので実際にできるのかは知りません。
=================
import javax.mail.*;
import java.util.*;
import java.io.*;
public class Q6226412{
public static void main(String[] args){
try{
Properties props = System.getProperties();
String username;
String password;
/* username and password input:start */
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("username?");
username = br.readLine();
System.out.println("password?");
password = br.readLine();
}catch(IOException e){
System.out.println(e.getStackTrace().toString());
return;
}
/* username and password input:ehd */
Session session = Session.getInstance(props, null);
Store store = null;
store = session.getStore("imaps");
store.connect("imap.gmail.com",993,username ,password);
Folder folder = store.getDefaultFolder();
Folder folder2 = folder.getFolder("INBOX");
folder2.open(Folder.READ_WRITE);
Message m = null;
/* seems not 0-based, but 1-based.*/
m = folder2.getMessage(1);
m.setFlag(Flags.Flag.FLAGGED, !m.getFlags().contains(Flags.Flag.FLAGGED));
folder2.close(true);
store.close();
}catch(NoSuchProviderException e){
System.out.println(e.getStackTrace().toString());
}catch(MessagingException e){
System.out.println(e.getStackTrace().toString());
}
System.out.println("Done");
}
}
himajin100000さん
回答ありがとうございます。
★のフラグ名がFLAGGED分からず悩んでました。
ずっとfavoriteとかStarとかって検索してハマりました...
無事Android、JavaMail、IMAP4で★切り替え出来ました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
テキストファイルから空白行をよむ
-
csv出力について
-
Java 出席状況を表す文字列から...
-
javaのfor文が機能してないみた...
-
[JAVA]エラーが解決できません。
-
以下のJAVAプログラムでご質問...
-
スペースを含めた文字列の検索
-
InputStream.read()でタイムア...
-
テキストファイルにおいて任意...
-
テキストファイルのアップロード
-
BufferedReaderでのエラー
-
【ご依頼】Javaソースコードシ...
-
ループ処理の際、最後だけ","を...
-
JSPやサーブレットでSystem.out...
-
変数を動的に利用するには?
-
System.err. printlnとSystem.o...
-
オブジェクトの中のプロパティ...
-
ダブルクォーテーションのrepla...
-
C言語のポインターに関する警告
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
csv出力について
-
equalsの逆
-
Javaの質問です。テキストファ...
-
InputStream.read()でタイムア...
-
Inputstreamについて
-
javaのfor文が機能してないみた...
-
テキストファイルにおいて任意...
-
Windowsでの標準入力の終了の仕方
-
Javaでデータに登録する度にID...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
以下のJAVAプログラムでご質問...
-
FileクラスのcanRead/canWrite...
-
拡張子の読み込み制限を設けた...
-
九九を横に表示する。
-
Class.forNameでエラーになる
-
ObjectInputStreamとStreamCorr...
-
戻り値を使用する呼出
-
JAVAでエラーがでる。
おすすめ情報