0

私はYahooMailから受信トレイを取得する次のコードを持っています:-

this._store = _session.getStore("imaps");
this._store.connect("imap.mail.yahoo.com", 993, this._uid, this._pwd);
Folder inbox = this._store.getFolder("Inbox");

SearchTerm unread = new FlagTerm(new Flags(Flag.SEEN), false);
IMAPMessage[] msgs = (IMAPMessage[]) inbox.search(unread);

これにより、変数msgの形式で未読メッセージが返されました。以前、gmailで正常に動作するこのコード行がありました:-

String ref = msg.getHeader("References")[0];

しかし、Yahoo のおかげで、Null Pointer Exception.

質問は、Gmail とは異なり、YahooMail のメッセージ ヘッダーに参照が保存されないのですか?

4

2 に答える 2

0

メッセージに返信すると、References ヘッダーが設定されます。読んでいるメッセージが返信ではない場合、References ヘッダーが含まれている可能性は低くなります。また、返信の場合でも、返信を送信したメーラーに依存してヘッダーを追加します。しない人もいます。ヘッダーが欠落している場合は、常に準備する必要があります。

于 2013-08-28T20:35:23.663 に答える
0

参照は、Gmail や他の電子メール プロバイダーの電子メールと同様に、Yahoo メールで設定されます。

詳細については、このドキュメントを参照してください: http://cr.yp.to/immhf/thread.html

ビル・シャノンが言及したような問題は、最初のメッセージで、以前にメールに返信がないことです。参照が空です。したがって、次のコードではエラーが発生します。

String ref = msg.getHeader("References")[0];

これには例外処理のみが必要で、残りは問題なく機能します。

于 2013-08-29T06:43:24.980 に答える