合計 昨日 今日

アバター
Dixq (管理人)
管理人
 
記事: 1394
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (544)
日記
- 5月 2017
アメリカに着きました (6)
   2017年5月17日(水) 08:22
新車購入しました! (4)
   2017年5月07日(日) 18:40
改竄されない変数の作り方 (9)
   2017年5月04日(木) 03:16

+ 4月 2017
+ 3月 2017
+ 2月 2017
+ 1月 2017
+ 12月 2016
+ 11月 2016
+ 10月 2016
+ 9月 2016
+ 8月 2016
+ 7月 2016
+ 6月 2016
+ 5月 2016
+ 4月 2016
+ 3月 2016
+ 2月 2016
+ 1月 2016
+ 12月 2015
+ 11月 2015
+ 10月 2015
+ 9月 2015
+ 8月 2015
+ 7月 2015
+ 6月 2015
+ 5月 2015
+ 4月 2015
+ 3月 2015
+ 2月 2015
+ 1月 2015
+ 12月 2014
+ 11月 2014
+ 10月 2014
+ 9月 2014
+ 8月 2014
+ 7月 2014
+ 6月 2014
+ 5月 2014
+ 4月 2014
+ 3月 2014
+ 2月 2014
+ 1月 2014
+ 12月 2013
+ 11月 2013
+ 10月 2013
+ 9月 2013
+ 8月 2013
+ 7月 2013
+ 6月 2013
+ 5月 2013
+ 4月 2013
+ 3月 2013
+ 2月 2013
+ 1月 2013
+ 12月 2012
+ 11月 2012
+ 10月 2012
+ 9月 2012
+ 8月 2012
+ 7月 2012
+ 6月 2012
+ 5月 2012
+ 4月 2012
+ 3月 2012
+ 2月 2012
+ 1月 2012
+ 12月 2011
+ 11月 2011
+ 10月 2011
+ 9月 2011
+ 8月 2011
+ 7月 2011
+ 6月 2011
+ 5月 2011
+ 4月 2011
+ 3月 2011
+ 2月 2011
+ 1月 2011
+ 12月 2010
+ 11月 2010
+ 10月 2010
フォロー
カテゴリー
日常
1 記事

javaxでGmailを扱う

パーマリンクby Dixq (管理人) on 2016年9月19日(月) 11:53

プログラミングしてて困ったことがここ2日あったのでメモしておく。

javaxでGmailを扱うアプリを作っているのだが、色々障害がある・・。


Gmailにconnectできない・・何故だ・・。と思っていたら、
Gmailの設定で「安全性の低いアプリがアカウントにアクセスするのを許可する」にしておかないとjavaxでconnectできないようだ。
https://support.google.com/accounts/answer/6010255


メールボックスには1万件くらいあるのに
_emailFolder = _store.getFolder(FOLDER_NAME);
_emailFolder.open(Folder.READ_WRITE);
int length = _emailFolder.getMessageCount();
で、lengthが必ず250になる。
メールを消せば250以下も取れるが、250以上になると途端に250としか取得できなくなる。
何故だか分からないが、1回読んだら消すようにしてメールが250以上たまらないようにすることで解決した。
でもサードパーティのメーラーアプリはどうしてるんだろう・・・。


送受信のエージング検査をするため、30秒に1度送受信するプログラムを一晩中実行しっぱなしで寝てみたら、途中でエラーまみれになっていた。
エラーメッセージに「Daily sending quota exceeded.」とか書いてあって、え、送り過ぎちゃダメなの?と思ってググってみたら
http://haisai.info/archives/post_116.html
Gmailは1日500件以上送るとスパム扱いされてアカウントロックされるもよう・・・。
仕方ないので別のアカウント作りました。


新着メールがあったことを知らせる方法としてレシーバーを登録してみた。
http://d.hatena.ne.jp/speg03/20110612/1307882138
しかしこれがいい加減な奴で、その時の気分でしか動作しやがらない・・。
新着メールがあるのにレシーバー動かなかったり新着メールが無いのに動作したり・・。
気休め程度に受信メールを確認するトリガーに使う位にしか使えない。


前述のレシーバーから新着があることを検出してメールの件数を
_emailFolder.getMessageCount();
で取得すると新着分の件数が取得されない。
これはGmailそのものにまだ受信されていないようで、たまに全然新着メールを受信しないことがある。
こんな時はブラウザのメールボックスで更新ボタンを押さないといけない。
プログラムからreloadなんかできればいいのにそういうメソッドが無い。
新着メールの表示にめちゃめちゃ時間がかかることがある。


まだまだこれからトラブルあるでしょうけど、今後の人のために情報おいておきます。
最後に編集したユーザー Dixq (管理人) [ 2016年9月19日(月) 11:58 ], 累計 1 回

コメント数: 2 閲覧数: 7468
コメント

Re: javaxでGmailを扱う

パーマリンクby YuO on 2016年9月20日(火) 00:01

①に関しては,Gmail API使うことがGoogleの推奨でしょうね。
Oauth認証なのでパスワードをクライアントが知る必要がない,という1点だけでもOauth認証の方が安全かと。
Offtopic :
他のシステムのパスワードなんて,知らなくて済むなら知らない方が作る側としても安心です。
YuO
 
記事: 868
登録日時: 2010年12月01日(水) 01:25
お住まい: 東京都世田谷区
日記: 日記を見る (32)

Re: javaxでGmailを扱う

パーマリンクby Dixq (管理人) on 2016年9月20日(火) 23:51

> YuOさん

なんと!
これは有益な情報をありがとうございます。
Gmailに特化したAPIあるだろうなとは思ってたんですがjavaxで作ってしまいました。
しかしちょろっとググっただけじゃポーリングで受信トレイのメール取得する方法が良く分からないですね・・。
うむむ、サンプルが少ないのは難しそうだ。
今後の改善ネタにしていきたいと思います。
アバター
Dixq (管理人)
管理人
 
記事: 1394
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (544)

オンラインデータ

登録ユーザー: keito94, みけCAT