2011-03-22 60 views
9

我想要下载所有gmail帐户中的电子邮件,并希望获得唯一的URL,这将在gmail中打开确切的邮件,并通过身份验证过程。我尝试使用javax.mail imap库,但Imap可能不支持任何喜欢它的东西。链接到gmail中的单个邮件

我可以使用“https://mail.google.com/mail/feed/atom”Gmail邮件供稿。但不会给我整个电子邮件,它只会给未读的电子邮件,我不想错过任何电子邮件

回答

12

如果您使用的是Google Apps for Business/Education,则可以执行此操作。如果是,则可以使用OAuth访问Gmail收件箱源(Atom)。也可以使用OAuth通过IMAP访问Gmail - 然后您可以通过编程方式完全访问IMAP服务器,请参阅Gmail IMAP and SMTP using OAuth

谷歌已经扩展IMAP,允许开发人员通过IMAP提供更类似Gmail的体验,请参阅:(Gmail IMAP Extensions, X-GM-EXT-1)

独特消息(X-GM-MSGID)和唯一线程(X-GM-THRID)ids可用于直接生成Gmail邮件链接 - 您只需对hex长整型进行十六进制编码(例如Long.toHexString (x_gm_msgId))。然后,您的链路将需要需要在形式:

http://mail.google.com/mail?account_id=ACCOUNT_ID_HERE&message_id=MESSAGE_ID_HERE&view=conv&extsrc=atom 

供应ACCOUNT_ID_HERE(类似[email protected])和MESSAGE_ID_HERE适当。

我一直在这方面工作,并认为您可能会发现我的项目很有用,请参阅:java-gmail-imap

[NB:如上格式化不Gmail的移动网站工作网址(至少在iPhone/Safari浏览器)]

-1

我相当有信心这是不可能的 - 没有可靠的方式来获得唯一的URL会导致在Gmail中发送一封电子邮件。我很乐意听到别的!

我确实有可能获得一个URL,它将导致包含该消息的Gmail线程 - 但您无法控制此线程显示中哪些消息被“展开”。

+1

我的目的仍会被解决如果我可以得到URL到消息线程,你能帮我解决吗?但是,Greplin正在做一些事情,将你带到唯一的电子邮件,扩大它。 – Rohit 2011-03-24 05:29:34

0

https://mail.google.com/mail/#all/HexEncodeMessageID 替换与该ID的HexEncodeMessageID一部分。你得到它,当你在新窗口中打开电子邮件(使用弹出了图标右上角 的ID是这样的:搜索=收件箱&日= 1426b8f59e003aa0

+0

我认为他希望能够做到这一点,而不会击中网站所有。 – user1618143 2013-11-19 22:10:30