[实践证明整理系列]CentOS 6中简单架设Apache James邮件服务器(续1)——用户和邮件存到数据库

参考

1. james+mysql

2. MYSQL用户权限管理(Grant,Revoke)

网络上资源丰富,但不知为什么,当我按照网上一些技术文章一步一步操作后,得到的结果总是失败,问题重出。
而且天下文章一大抄,通过搜索找来的结果大多完全相同。
于是决定记录自己一步一步明确的操作,总结成文章,以方便自己日后查阅,也许也能对其他人有所帮助。

本篇序
在上篇《CentOS 6中简单架设Apache James邮件服务器》中已经搭建好James邮件服务,但用户和邮件都是保存在文件中的,不便于管理和查询。为此本篇将配置James服务,把用户和邮件信息保存在数据库中。

目的
在CentOS中配置James邮件服务,使用数据库(MySQL)存储用户和邮件信息。

操作环境
服务器硬件 : EeePC 701(超烂配置)
服务器系统 : CentOS 6
Java : java 1.7.0
James : James Mail Server 2.3.2

步骤
1. 下载并安装MySQL
需要MySQL请到Oracle的网站下载,这怎么听来怪怪的?
呵呵,其实不用啦。
#yum mysql-server mysql
 
运行这条命令就搞定了。

#service mysqld start
 
启动MySQL数据库服务,再通过mysql命令进入mysql管理工具。
为了方便管理,在MySQL创建一个数据库“maildb”,再新建MySQL用户“maildbuser”。

#mysql -u root -p
mysql>create database maildb;
mysql>create user maildbuser;
mysql>use maildb;
mysql>grant SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP on maildb to maildbuser@localhost identified by '1234';
 
下载MySQL的JDBC驱动包,并放在James目录中的lib目录下。

2. 配置用户到MySQL数据库
打开James的config.xml配置文件
#vi james_home/apps/james/SAR-INF/config.xml
 
找到
……
<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>
……
 
3. 配置邮件到MySQL数据库
config.xml找到
……
<inboxRepository>
   <repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>
……
 
注释之,添加如下配置
……
<inboxRepository>
   <repository destinationURL="db://maildb/inbox/" type="MAIL"/>
</inboxRepository>
……
 
4. 配置SPOOL到MySQL数据库(SPOOL到底是什么?)
config.xml找到
……
<spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>
……
 
注释之,添加如下配置
……
<spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
……
 
5. 配置数据库信息
再在文件中搜索“data-source”,找到如下配置
……
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
   <driver>org.gjt.mm.mysql.Driver</driver>
   <dburl>jdbc:mysql://127.0.0.1/maildb</dburl>
   <user>maildbuser</user>
   <password>1234</password>
   <!--poolPreparedStatements>true</poolPreparedStatements-->
   <max>20</max>
</data-source>
……
 
释放注释,并将其中的配置修改对应的数据库信息。

再次启动James服务程序。
#./run.sh
 
OK,James会在maildb数据库中创建表,“users”、“inbox”、“spool”表。
同样可以telnet丑陋的文字控制台adduser,创建用户后再到MySQL数据库中select一下。
mysql>select * from users;
 
在users表中就有了刚刚创建的用户,同样,也可以通过insert记录到users表中来创建新用户。

mysql>select * from inbox;
mysql>select * from spool;
 

猜你喜欢

转载自aclyyx.iteye.com/blog/1182555