2012-11-23 113 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自行发送)并从邮件中提取。