使用javamail按域过滤电子邮件
我正在使用使用javamail按域过滤电子邮件,java,jakarta-mail,Java,Jakarta Mail,我正在使用javamail下载电子邮件,但现在我需要按域过滤一些电子邮件地址 我尝试使用StringTerm中的,,但我不知道过滤它的正确模式 编辑1:jmehrens部分解决了我的问题。我希望在从文件夹中获取邮件时进行筛选,例如: Store store = session.getStore("imap"); store.connect(configc.host, configc.email, configc.pass);
javamail
下载电子邮件,但现在我需要按域过滤一些电子邮件地址
我尝试使用StringTerm中的,
,但我不知道过滤它的正确模式
编辑1:jmehrens部分解决了我的问题。我希望在从文件夹中获取邮件时进行筛选,例如:
Store store = session.getStore("imap");
store.connect(configc.host, configc.email, configc.pass);
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY);
Message[] arrayMessages1 = folderInbox.search(??);
Store store = session.getStore("imap");
store.connect(configc.host, configc.email, configc.pass);
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY);
Message[] onlyBarOrg = folderInbox.search(new FromStringTerm("@bar.org"));
此时如何按域进行筛选?FromStringTerm继承了下列行为: 此类实现字符串的match方法。当前实现仅提供子字符串匹配。我们可以添加比较(比如strcmp…) 因此,当它执行开箱即用的子字符串匹配时,没有模式 下面是一个测试用例:
public class DomainMatch {
public static void main(String[] args) throws Exception {
MimeMessage msg = new MimeMessage((Session) null);
msg.addFrom(InternetAddress.parse("foo@bar.org"));
msg.saveChanges();
System.out.println(new FromStringTerm("@bar.org").match(msg));
System.out.println(new FromStringTerm("@spam.org").match(msg));
}
}
使用文档,您可以编写如下内容:
Store store = session.getStore("imap");
store.connect(configc.host, configc.email, configc.pass);
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY);
Message[] arrayMessages1 = folderInbox.search(??);
Store store = session.getStore("imap");
store.connect(configc.host, configc.email, configc.pass);
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY);
Message[] onlyBarOrg = folderInbox.search(new FromStringTerm("@bar.org"));
谢谢你的回复。我更新了我的问题,提供了一些我需要做的细节。