Spring集成入站电子邮件适配器

Spring集成入站电子邮件适配器,spring,spring-integration,Spring,Spring Integration,我是否可以使用IMAP入站适配器中的邮件筛选器表达式属性基于发件人电子邮件id拒绝电子邮件如果您的意思是拒绝,您的意思是从AbstractMailReceiver忽略,然后是 编辑: 表达式的根对象是mimessage;getFrom返回一个地址[],类似于 "from == null || from.length == 0 ? false : from[0].toString().contains('something.org') ? true : false" 应该有用 对于更复杂的内容

我是否可以使用IMAP入站适配器中的邮件筛选器表达式属性基于发件人电子邮件id拒绝电子邮件

如果您的意思是拒绝,您的意思是从AbstractMailReceiver忽略,然后是

编辑:

表达式的根对象是mimessage;getFrom返回一个地址[],类似于

"from == null || from.length == 0 ? false : from[0].toString().contains('something.org') ? true : false" 
应该有用

对于更复杂的内容,您可以编写一个Java类,将其定义为一个bean,并从表达式中引用它:@myMailFilter.filterroot

编辑2:

请注意,如果使用IMAP,您还可以使用搜索词策略来限制甚至被视为已检索的电子邮件

例如:

@Override
public SearchTerm generateSearchTerm(Flags supportedFlags, Folder folder) {
    try {
        return new FromTerm(new InternetAddress("*@something.org"));
    }
    catch (AddressException e) {
        throw new RuntimeException(e);
    }
}

谢谢你,加里。我的意思是忽略。我想看看是否有可能在邮件过滤器表达式属性上写一个spel表达式来接受来自say@something.org抱歉的电子邮件;误读你的要求;颠倒了表达逻辑。谢谢Gary。是否有类似AbstractFileListFilterNo的AbstractMailFilter;在本例中,过滤器是一个必须返回布尔值的简单表达式,因此任何返回布尔值的POJO方法都是必需的。谢谢Gary。我尝试使用一个简单bean和一个返回布尔值的方法。我有例外…->原因:org.springframework.expression.spel.SpelEvaluationException:EL1057E:pos 1:没有在上下文中注册bean解析器来解析对bean'beanname'的访问。我在本项目中使用spring 3.1.3和spring integration 2.2.0。
@Override
public SearchTerm generateSearchTerm(Flags supportedFlags, Folder folder) {
    try {
        return new FromTerm(new InternetAddress("*@something.org"));
    }
    catch (AddressException e) {
        throw new RuntimeException(e);
    }
}