我正在尝试使用 JAVA MAIL API 处理邮件。我想检查来自来自特定电子邮件 ID 的电子邮件,因此我正在检查:
for(int i=0;i<messages.length;i++)
{
if(messages[i].getFrom().toString().equalsIgnoreCase("seller-notification@amazon.com"))
{
System.out.println(messages[i].getContent());
Multipart mp = (Multipart)messages[i].getContent();
Object Body = mp.getBodyPart(i).getContent();
String Content = Body.toString();
}
}
Debug模式屏幕,我可以在调试中看到值位于from中:
上述条件未成立。
最佳答案
这是因为它不是字符串,并且您正在尝试比较 Object
的 toString()
方法和 String
。由于此 toString
不会返回您想要的内容,因此您必须将其转换为 Address
并从那里获取电子邮件。
尝试:
Address[] froms = messages[i].getFrom();
String email = froms == null ? null : ((InternetAddress) froms[0]).getAddress();
if("seller-notification@amazon.com".equalsIgnoreCase(email))
{//Your work}
关于java - 即使条件包含指定数据,条件也会变为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34690839/