JAMES的数据存放方式有三种:file,db,dbfile
file就是以文件方式储存
db当然是数据库
dbfile我个人感觉一般都不会用它的,它是把消息头用数据库方式存放,而把消息体用文件方式存放
现在开始配置james下把邮件数据保存到MySql数据数库中:
第 一、首先将MySQL的驱动程序(例如:mysql-connector-java-3.1.6-bin.jar 下载地址:http://forums.mysql.com/read.php?39,218287,220327#msg-220327)考到james的lib目录下(例如:D:/james/lib)
第二、在MySQL中新建一个数据库mail;
第三、 运行james下bin目录下的run.bat文件,此时会在apps目录下产生一个james目录,在james目录下找到
SAR-INF文件夹,此 时可以开始配置config.xml文件啦。
第四:打开config.xml,找到<users-store>这一项,此面默认的内容为:
<repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>
需要修改为:
<repository name="LocalUsers"
class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
其实如不修改也行,因为文件下面也有实例,不过是用<!-- 和 --> 注释掉的,打开即可;记住把
<repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>
用<!-- 和 --> 注释掉;
通过修改,我们就把用户信息的存储介质从file改成了db,<sqlFile>是指明了在db中的数据表结构及相关数据库信息。
第五:仍然是config.xml,找到<data-sources>项,默认内容为空,把此项内容修改为:
<data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
<driver>org.gjt.mm.mysql.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail</dburl>
<user>root</user> //用户名
<password></password> //数据库密码
<max>20</max>
</data-source>
或打开文件下面实例的<!-- 和 --> 注释
<driver>是指MySQL的JDBC驱动,注意这个默认的<driver>是有问题的,要改成MySQL的驱动程序中Driver.class的路径,即:
<driver>com.mysql.jdbc.Driver</driver>
<dburl>指数据库的访问路径,IP后的mail即MySQL中新建数据库名,接下来是用户名、密码及最大连接数。
再次启动时,james将在mail数据库中自动创建有关用户的表格。