我正在使用Java EWS API使用SendandSaveCopy发送邮件。如果邮件发送成功与否,我想要检查一下(如果互联网不能正常工作)。当我尝试这样做时,它表明它是一种无效方法。有没有办法找出邮件是否成功发送。
答案 0 :(得分:0)
在EmailMessage
类中,使用方法setIsDeliveryReceiptRequested
并在发送邮件之前设置为true
。
一旦发送邮件并且邮件服务器已将邮件传递给收件人,您将收到一条消息(如果邮件服务器支持)报告收件人何时收到邮件。
/**
* Sets the checks if is delivery receipt requested.
*
* @param value the new checks if is delivery receipt requested
* @throws Exception the exception
*/
public void setIsDeliveryReceiptRequested(Boolean value) throws Exception {
this.getPropertyBag().setObjectFromPropertyDefinition(
EmailMessageSchema.IsDeliveryReceiptRequested, value);
}
来自官方API的DOC
Message对象包含两个属性,可以指示基础MAPI系统报告成功接收消息:DeliveryReceipt和ReadReceipt。 将这些属性设置为True并发送消息时,基础MAPI系统会自动为您跟踪消息。设置DeliveryReceipt属性时,MAPI系统会在收件人收到邮件时自动为发件人生成一条消息。设置ReadReceipt属性时,MAPI系统会在收件人阅读邮件时自动生成向发件人报告的邮件。
https://msdn.microsoft.com/en-us/library/ms526415(v=exchg.10).aspx
您还可以使用ReadReceipt
了解邮件的读取时间。