有这样一个场景,A向B发送一封邮件,服务器端得到邮件内容后进行处理,而不需要将该邮件存储在James Server上。
修改config.xml文件后,找到
<mailstore>
<repositories>
<!-- File based repositories. These repositories store all message data -->
<!-- in the file system. -->
<repository class="org.apache.james.mailrepository.AvalonMailRepository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
</repository>
<repository class="org.apache.james.mailrepository.AvalonSpoolRepository">
<protocols>。。。
可以发现mail的存储使用org.apache.james.mailrepository.AvalonMailRepository来控制的,查看源码后发现这个类中有一个store方法,
所以可以这样:
写一个子类继承该类,只有一个方法,即复写父类的store方法,让其方法内容为空,然后在config.xml中配置
<repository class="org.apache.james.mailrepository.KryptMailRepository">
重新dist James,大功告成。
在用Ant 运行dist的时候,会产生错误,原因是我用的james 是2.3.2 的版本,而该版本是用的jdk1.4,不能识别注释(cong jdk1.5开始),我机器上是1.6,所以修改ant 中 javac的target 或source 属性,改为1.5或1.6即可。