网上很多有关james的基本配置,很有借鉴意义.本文主要说的是james基于mysql:
- 1
注释掉所有的**<repositoryPath>file://var/mail/</repositoryPath>** 找到并去掉注释**:<repositoryPath> db://maildb/ </repositoryPath>** 以下是关于james与mysql的相关配置(需要在lib里面放入mysql驱动)
<!-- lang: xml -->
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
<!--<driver>org.gjt.mm.mysql.Driver</driver>-->
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/maildb?autoReconnect=true</dburl>
<user>root</user>
<password>root</password>
<max>20</max>
</data-source>
使用mysql创建utf8编码数据库 CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
在my.ini中mysqld后面加入max_allowed_packet =50M (附件大小) 这里要加的原因是mysql中有个message_body字段是二进制字段,会存入邮件的MIME实体,MIME实体中会保存包括邮件表头,正文和附件部分,所以会灰常大。如果各位有能解析MIME实体的工具可以直接取该字段进行邮件解析,免去了通过服务器pop3协议登陆和验证的时间。
收附件的时候,会遇到收不到超过10m附件的情况,一个是前面说的mysql字段大小限制,还有一个会有jvm虚拟内存的限制,因为默认16m的虚拟内存是不够的,要在james中修改。这里有两种修改方法: 1)在run.bat中加入set JAVA_OPTS="-Xms32m -Xmx512m -Xss512m" 并启动 2)在conf/wrapper.conf修改并通过服务启动
wrapper.java.initmemory=64 wrapper.java.maxmemory=512
如果想正常收发邮件,请确保好helo或ehlo名,并对自己的mx地址做好dns反向解析,就可以基本保证全网收发.
最后附赠一份james的config(放在james-2.3.2\apps\james\SAR-INF下面,已经全网能收发) 地址是:http://pan.baidu.com/s/1xg8GK
十分钟邮箱地址:http://www.10min.club