web-dev-qa-db-fra.com

Obtenir un email individuel en utilisant son message_id de Gmail

Je reçois un message ATOM de Gmail avec une liste de messages. Chaque entrée de message dans le flux ATOM inclut un lien comme celui-ci:

<link rel="alternate" href="https://mail.google.com/mail?account_id=email_address&amp;message_id=big_number&amp;view=conv&amp;extsrc=atom" type="text/html"/>

Existe-t-il un moyen de ne recevoir qu'un message de Gmail? J'ai essayé l'évident

https://mail.google.com/mail?account_id=email_address&amp;message_id=big_number&amp;view=conv&amp;extsrc=atom qui renvoie simplement une redirection vers la connexion.

J'ai aussi essayé: https://email_address:[email protected]/mail?account_id=email_address&amp;message_id=big_number&amp;view=conv&amp;extsrc=atom mais cela retourne interdit 403.

J'ai ensuite essayé d'utiliser OpenPop (client Pop3) pour récupérer un message; Cependant, GetMessageUids () renvoie une liste vide.

Existe-t-il un moyen de récupérer un courrier électronique spécifique à partir de gmail, idéalement en utilisant https: comme je l’ai déjà essayé, ou si ce n’est pas le cas, en utilisant pop3? J'ai déjà un client pop3 en train de récupérer tous les courriels de gmail, je ne veux donc pas interférer avec cela.

1
Jimmy

Il s'avère que l'utilisation d'OpenPop pour récupérer l'intégralité du message fonctionne. Il peut "manquer" un message si un autre client pop3 l'a déjà téléchargé avant OpenPop (c'est pourquoi j'ai vu GetMessageUids () renvoyer 0 - je déboguais étape par étape). On peut contourner ce problème en préfixant son nom d'utilisateur avec "recent:" dans Pop3Client.Authenticate (). Cela téléchargera tous les messages reçus au cours des 30 derniers jours. Longue liste pour mon utilisateur, mais c'est mieux que de rater un message.

1
Jimmy