我正在尝试获取邮件反弹的电子邮件地址,我找到的唯一方法是使用javamail阅读退回的电子邮件,然后尝试查找邮件中包含的电子邮件地址。我能够阅读电子邮件,现在我的挑战是找到其中的电子邮件。 这是我的方法:
public String findEmailInString(String message) {
String email = "";
Pattern pat = Pattern.compile("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$");
Matcher match = pat.matcher(message);
while (match.matches()) {
email = match.group();
}
return email;
}
编辑我的邮件采用以下格式: “
This is an informative message sent by mail.simbatech.biz.
The server was not able to deliver your email message
Subject: GAtungo
Date: Fri, 14 Nov 2014 15:52:58 +0300
to the following addresses:
<gatungowanungai@simbatech.biz> (mail.simbatech.biz: Mailbox does not exist)"
尽管邮件正文中有电子邮件地址,但此方法仍返回null。有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
我知道这并没有直接回答这个问题,但这里的正常做法并不是试图解析退回邮件。
相反,当您发送电子邮件时,您为每封发送的电子邮件设置了不同的Return-Path
标题。然后,您可以唯一地标识此消息来自哪个用户。
此技术称为VERP。