我正在尝试阅读退回电子邮件的状态标头。这个网站更好地解释了我正在尝试什么......
原始电子邮件由几个 MultiParts 对象组成,所以我在 java 代码中阅读它:
private void test(MimeMessage message) throws IOException, MessagingException {
if (message.getContent() != null && message.getContent() instanceof Multipart) {
Multipart content = (Multipart) message.getContent();
for (int i = 0; i < content.getCount(); i++) {
BodyPart bodyPart = content.getBodyPart(i);
Enumeration headers = bodyPart.getAllHeaders();
while(headers.hasMoreElements()){
Header header = (Header) headers.nextElement();
LOGGER.info("Header: " + header.getName() + " value: " + header.getValue());
}
}
}
}
我正在分析的电子邮件部分:
Content-Description:交付报告 Content-Type:text/plain;charset=utf-8 内容传输编码:7bit
报告-MTA:dns;someLink.com X-Postfix-Queue-ID:EC862F00D0 X-Postfix-Sender:rfc822;receiver@email.com 到达日期:2013 年 8 月 7 日,星期三 13:52:43 +0200 (CEST)
最终收件人:rfc822;noexisting@email.com 原始收件人:rfc822;noexisting@email.com 操作:失败状态:5.1.1 远程 MTA:dns;[somelink.com 诊断代码:smtp;550-5.1.1 您尝试访问的电子邮件帐户不存在。请尝试 550-5.1.1 仔细检查收件人的电子邮件地址是否有拼写错误或 550-5.1.1 不必要的空格。
在我的日志文件中,我只能看到前 3 个标题:
> Header: Content-Description value: Delivery report
> Header: Content-Type value: text/plain; charset=us-ascii INFO
> Header: Content-Transfer-Encoding value: 7bit
有谁知道为什么?我怎样才能获得状态标题?谢谢