メッセージのリストを含むATOMフィードをGmailから取得します。 ATOMフィードの各メッセージエントリには、次のようなリンクが含まれています。
<link rel="alternate" href="https://mail.google.com/mail?account_id=email_address&message_id=big_number&view=conv&extsrc=atom" type="text/html"/>
Gmailからそのメッセージを1つだけ取得する方法はありますか?明らかなことを試した
https://mail.google.com/mail?account_id=email_address&message_id=big_number&view=conv&extsrc=atom
は、ログインへのリダイレクトを返すだけです。
私も試してみました:https://email_address:[email protected]/mail?account_id=email_address&message_id=big_number&view=conv&extsrc=atom
が、禁止された403を返します。
次に、 OpenPop(Pop3クライアント) を使用してメッセージを取得しようとしました。ただし、GetMessageUids()は空のリストを返します。
理想的にはhttpsを使用してGmailから特定のメールを取得する方法はありますか:上記で試したように、そうでない場合はpop3を使用して?すでにGmailからすべてのメールを取得するpop3クライアントを持っているので、それを妨げたくありません。
OpenPopを使用してメッセージ全体を取得することができます。 OpenPopが到達する前に別のpop3クライアントが既にダウンロードしている場合、メッセージを「見逃す」ことがあります(そのため、GetMessageUids()が0を返すのを見ました-段階的にデバッグしていました)。これを回避するには、Pop3Client.Authenticate()でユーザー名の前に「recent:」を付けます。これにより、過去30日間に受信したすべてのメッセージがダウンロードされます。ユーザーの長いリストですが、メッセージを見逃すよりはましです。