2012-11-23 47 views
1

我正在使用java郵件API通過Gmail帳戶發送郵件。我的要求是,在發送郵件時,我需要郵件標識(或電子郵件的一些唯一標識),以在本地數據庫中存儲一些其他信息。如何在發送郵件時獲取Gmail郵件ID?

由於Transport.send()方法沒有返回任何值,我無法獲得郵件的ID?

所以兩個問題:

1)任何人可以幫助我用的方式來獲得郵件Gmail的ID,在發送?

2)「Message-ID」是郵件的唯一標識符嗎?

在此先感謝。

回答

3

JavaMail將在發送消息時設置消息ID。使用msg.getMessageID()發送消息後,可以從消息中讀取消息。

+0

非常感謝你..!那可行。 –

+0

這不起作用。我構造了一個MimeMessage,但getMessageID()只在IMAPMessage中實現 - 這是一個沒有公共構造函數的子類。我們如何做到這一點? –

+0

你使用[this method](https://javamail.java.net/nonav/docs/api/javax/mail/internet/MimeMessage.html#getMessageID--)嗎? –

1

Message-Id應該是郵件的唯一標識符(see wiki),但要獲得您自己生成的郵件標識(這是郵件程序所做的 - 它不是由服務器生成的),或者如果您使用某種類型的API對你來說它要麼提供一種方法來檢索這個。如果沒有,您可能需要取得該郵件正文(即通過BCC自行發送)並從郵件中提取。