Mailet API是一个用来创建邮件处理程序的简单的API,它被配置在邮件服务器端执行,分匹配器和Mailet的接口两种,匹配器根据特定的条件匹配邮件消息,并触发响应的Mailet.
  Mailet这个词是跟Servlet相似,功能也相似,他们的共同之处都是在服务器端触发并执行,只是servlet的Matcher通常是url的pattern,跟Servlet的接口一样,Mailet也有init()方法,service方法和destroy方法.即他们都有类似的生命周期.
  Mailet的简单可编程接口可以用来做一些邮件处理,比如反垃圾邮件,检查邮件病毒以及邮件博客等等,利用移动设备可发送email的功能,可以做到手机通过mail发送信息到邮件服务器交给Mailet处理,形成移动博客的模型.
  下面是一小段Hello World的Mailet代码: package com.gdsean; import org.apache.mailet.*;
  public class HelloMailet     extends GenericMailet {   public void init() throws MessagingException {   }   public void service(Mail mail) throws MessagingException {        System.out.println("hello world");   } }
  package com.gdsean; public class HelloMatcher extends GenericRecipientMatcher {   public boolean matchRecipient(MailAddress recipient) {      //邮件地址必须包含hello的       if (recipient.getUser().indexOf("hello")!=-1) {           return true;       }       return false;   } 
}
 
  下一步将代码打包配置到执行Mailet的james mail server,找到james-2.2.0\apps\james\SAR-INF\config.xml <spoolmanager> ... 加入       <mailetpackages>          <mailetpackage>org.apache.james.transport.mailets</mailetpackage>    <mailetpackage>package com.gdsean</mailetpackage>       </mailetpackages>       <matcherpackages>          <matcherpackage>org.apache.james.transport.matchers</matcherpackage>    <matcherpackage>package com.gdsean</matcherpackage>       </matcherpackages> <mailet match="HelloMatcher" class="HelloMailet"> </mailet> 假如自己的域名是test.com,那么发送个邮件到[email protected], mailet就会在后台输出一句”hello world”了.  
 
  |