我正在使用Java开发IMAP应用程序,我想只检索没有名称的电子邮件地址。这是我正在使用的相关代码。
Message[] msg = folder.getMessages();
for (int i = 0; i < msg.length; i++)
{
if (!msg[i].isSet(Flag.SEEN))
{
EmailSenderInfo emailSenderInfo = new EmailSenderInfo();
String from = InternetAddress.toString(msg[i].getFrom());
}
}
当我打印变量“from”时,它会打印如下所示的内容
name <emailaddress@gmail.com>
如何才能获取没有名称的电子邮件地址?
答案 0 :(得分:3)
getFrom方法返回一个Address对象数组,实际上是InternetAddress对象。通常只有一个From地址,所以你可以只使用数组中的第一个元素。然后使用InternetAddress.getAddress方法:
InternetAddress ia = (InternetAddress)msg[i].getFrom()[0];
String from = ia.getAddress();
答案 1 :(得分:1)
Whith模式匹配:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
Pattern pattern = Pattern.compile("<(.*?)>");
Matcher matcher = pattern.matcher("name <emailaddress@gmail.com>");
if (matcher.find())
{
System.out.println(matcher.group(1)); // prints "emailaddress@gmail.com"
}