Apache Commons Email 怎样设置接收方发送已读回执?
在给别人发邮件时,怎么知道对方是否收到?
类似126/163邮箱里面,发信时 勾选 “[ ] 已读回执”
对方收到邮件时,如果邮件客户端支持已读回执,就会弹出询问,比如163邮箱的提示语为
"某某某" <xxx@126.com>要求发送“已读回执”,是否发送?
点击发送就会发送已读回执,否则不发送,完全邮接收者自行决定。
如果发送已读回执,发送方(或指定的邮箱、见下面的代码说明)就会收到一封邮件,
标题为:
已读: 新计划,请查阅
大体内容如下:
这是邮件收条, 2012-05-16 09:20 发给 某某某 <xxx@163.com>, 主题为 新计划,请查阅 的信件已被接收
此收条只表明收件人的计算机上曾显示过此邮件
该邮件带有附件 ATT00002.bin ,是个文本文件,内容如下:
Reporting-UA: wmsvr
Final-Recipient:rfc822;xxx@163.com
Original-Message-ID:<78e2e281.1d121.137533b5114.Coremail.xxx@126.com>
Disposition:manual-action/MDN-sent-manually;displayed
注意:由于已读回执的发送需要接收方的确认,所以用这种方式来确认邮件是否被对方收到是不可靠的!!!
类 org.apache.commons.mail.Email 及其子类
包括 MultiPartEmail, SimpleEmail, HtmlEmail, ImageHtmlEmail
设置发送已读回执的代码
// String receiptTo = "xxx@domain.com";
// String receiptTo = "\"某某某\" <xxx@126.com>";
email.addHeader("Disposition-Notification-To", receiptTo);
其中 receiptTo 可以是发送者邮箱,也可以是别的邮箱。
javadoc 写道
public void addHeader(String name, String value)
Adds a header ( name, value ) to the headers Map.
Example:
X-Mailer: Sendmail,
X-Priority: 1( highest ) or 2( high ) 3( normal ) 4( low ) and 5( lowest )
Disposition-Notification-To: user@domain.net
|