James3.x
Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
目前James有稳定版还stable版本2.3.2和beta版beta3.James2.x版本开发于Avalon(Java Apache Server Framework)框架之上,James3.x开发自Spring框架之上。同时为了解决性能问题,在James3.x上加入Queue机制(ActiveMQ)进行邮件的异步处理。同时3.x配置文件对2.x的配置文件进行了拆分,故James2.x和James3.x有较大的区别。本文将以项目中使用的版本James Server 3.0-beta3的环境配置进行描述。
一、简单安装
1.OS:Ubuntu11.04
2.JDK1.6+,(jdk-6u26-linux-i586.bin)
a.将jdk安装到usr下面: /usr/jdk1.6.0_26/
b.配置/etc/profile,如下:
c.使配置文件生效:
d.校验:
3. James3 安装
a.下载:james-3.0-beta3| http://apache.etoak.com//james/apache-james/3.0beta3/apache-james-3.0-beta3-app.tar.gz
b.解压并将解压的文件cp到要安装的路径
c.配置/etc/profile,如下:
d.使配置文件生效
4.James3 简单运行
a. 启动服务
b.查看启动信息,到JAMES_HOME/log目录
看到【Server is successfully started】证明已经启动。
5.James3 简单测试。
a.添加domain
b.添加user
6. 好的,目前James3.x的安装已经成功。下面进行一些客户化配置。
二、定制配置
1.James3.x目前包含的配置文件
2.更改James3.x的Repository,以usersrepository为例,我们将James的用户信息存储到数据库Mysql中:
a.修改dnsservice.xml
b.修改 domainlist.xml
c.修改 smtpserver.xml
d.修改database.properties,如下:
e.下载将Mysql的驱动mysql-connector-java-5.0.8-bin.jar| http://www.java2s.com/Code/JarDownload/mysql-connector-java-5.0.8-bin.jar.zip 添加到JAMES_HOME/lib中。
3.重新启动James
查看Mysql数据库,会发现James3.x已经建立好了表结构如下:
4.添加域信息和用户信息:
a.添加domain
b.添加user
c.查看mysql 数据库信息:
5.至此完成了对James3.x Repository的配置和测试。
Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
目前James有稳定版还stable版本2.3.2和beta版beta3.James2.x版本开发于Avalon(Java Apache Server Framework)框架之上,James3.x开发自Spring框架之上。同时为了解决性能问题,在James3.x上加入Queue机制(ActiveMQ)进行邮件的异步处理。同时3.x配置文件对2.x的配置文件进行了拆分,故James2.x和James3.x有较大的区别。本文将以项目中使用的版本James Server 3.0-beta3的环境配置进行描述。
一、简单安装
1.OS:Ubuntu11.04
2.JDK1.6+,(jdk-6u26-linux-i586.bin)
a.将jdk安装到usr下面: /usr/jdk1.6.0_26/
b.配置/etc/profile,如下:
- export JAVA_HOME=/usr/jdk1.6.0_26
- export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
- export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
c.使配置文件生效:
- root@master# source /etc/profile
d.校验:
- root@master:/# java -version
- java version "1.6.0_26"
- Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
- Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode)
- root@master:/#
3. James3 安装
a.下载:james-3.0-beta3| http://apache.etoak.com//james/apache-james/3.0beta3/apache-james-3.0-beta3-app.tar.gz
b.解压并将解压的文件cp到要安装的路径
- tar -zxvf apache-james-3.0-beta3-app.tar.gz
- root@master#: cp -rf apache-james-3.0-beta3 /opt/james3.0
c.配置/etc/profile,如下:
- export JAVA_HOME=/usr/jdk1.6.0_26
- export JAMES_HOME=/opt/james3.0
- export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAMES_HOME/lib
- export PATH=$JAMES_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
d.使配置文件生效
- root@master# source /etc/profile
4.James3 简单运行
a. 启动服务
- root@master:/opt/james3.0/bin# ./james start
- Starting Apache James Server...
- Removed stale pid file: /opt/james3.0/bin/../var/james.pid
b.查看启动信息,到JAMES_HOME/log目录
- root@master:/opt/james3.0/log# tail -f james-server.log
- INFO 19:54:57,568 | org.apache.james.container.spring.Main | Apache James Server is successfully started in 30163 milliseconds.
看到【Server is successfully started】证明已经启动。
5.James3 简单测试。
a.添加domain
- root@master:/opt/james3.0/bin# ./james-cli.sh -h localhost -p 9999 adddomain alibaba.cn
- adddomain command executed sucessfully in 129 ms.
b.添加user
- root@master:/opt/james3.0/bin# ./james-cli.sh -h localhost -p 9999 adduser kevin@alibaba.cn kevin
- adduser command executed sucessfully in 150 ms.
- root@master:/opt/james3.0/bin#
6. 好的,目前James3.x的安装已经成功。下面进行一些客户化配置。
二、定制配置
1.James3.x目前包含的配置文件
- * database.properties : 数据库属性配置(当以DB作为Repository的时候应用)
- * dnsservice.xml :配置DNS
- * domainlist.xml :配置域列表
- * fetchmail.xml :取邮件
- * imapserver.xml :IMAP协议服务配置
- * jcr-repository.xml :配置Jackrabbit repository
- * jmx.properties :配置JMX参数,用于监控
- * lmtpserver.xml :配置 IMTP协议服务
- * log4j.properties :日志配置
- * mailbox.xml :邮件箱配置
- * mailetcontainer.xml :Maillet容器参数配置
- * mailrepositorystore.xml :邮件repository配置(DB JCR MEM etc..)
- * pop3server.xml : 配置POP3协议服务
- * recipientrewritetable.xml :暂不知是什么作用
- * smtpserver.xml :配置SMTP协议服务
- * sqlResources.xml :配置Repository为DB时候的表结构
- * usersrepository23.xml :暂不知于usersrepository.xml区别
- * usersrepository.xml :用户Repository配置
2.更改James3.x的Repository,以usersrepository为例,我们将James的用户信息存储到数据库Mysql中:
a.修改dnsservice.xml
- <dnsservice>
- <servers>
- <server>合法的DNS1</server>
- <server>合法的DNS2</server>
- </servers>
- <autodiscover>false</autodiscover>
- <authoritative>true</authoritative>
- <maxcachesize>50000</maxcachesize>
- </dnsservice>
b.修改 domainlist.xml
- <domainlist class="org.apache.james.domainlist.jpa.JPADomainList"> --使用数据库进行存储
- <autodetect>true</autodetect>
- <autodetectIP>true</autodetectIP>
- <defaultDomain>alibaba.com</defaultDomain> ---添加一个默认的domain,测试用户也将在该domain下面。
- </domainlist>
c.修改 smtpserver.xml
- <smtpserver enabled="true">
- <bind>0.0.0.0:25</bind>
- <connectionBacklog>200</connectionBacklog>
- <tls socketTLS="false" startTLS="false">
- </tls>
- <connectiontimeout>360</connectiontimeout>
- <connectionLimit> 0 </connectionLimit>
- <connectionLimitPerIP> 0 </connectionLimitPerIP>
- <authorizedAddresses>192.168.0.0/255.255.255.0, 127.0.0.0/8</authorizedAddresses>---》 添加不需要验证的地址
- <authRequired>true</authRequired> ---》验证非【192.168.0.0/255.255.255.0, 127.0.0.0/8】的邮件。
- <verifyIdentity>true</verifyIdentity>
- <maxmessagesize>0</maxmessagesize>
- <addressBracketsEnforcement>true</addressBracketsEnforcement>
- <handlerchain enableJmx="true">
- <handler/>
- <handler/>
- </handlerchain>
- </smtpserver>
d.修改database.properties,如下:
- database.driverClassName=com.mysql.jdbc.Driver
- database.url=jdbc:mysql://localhost:3306/mail --》mail是maysql中创建用于存放James数据的数据库名
- database.username=root --》Mysql的用户名
- database.password=javaman -》Mysql用户名对应的密码
- vendorAdapter.database=MYSQL
- openjpa.streaming=false
e.下载将Mysql的驱动mysql-connector-java-5.0.8-bin.jar| http://www.java2s.com/Code/JarDownload/mysql-connector-java-5.0.8-bin.jar.zip 添加到JAMES_HOME/lib中。
3.重新启动James
- root@master:/opt/james3.0/bin# ./james restart
- Stopping Apache James Server...
- Stopped Apache James Server.
- Starting Apache James Server...
- root@master:/opt/james3.0/bin#
查看Mysql数据库,会发现James3.x已经建立好了表结构如下:
- +-------------------------+
- | james_domain |
- | james_mail |
- | james_mail_property |
- | james_mail_userflag |
- | james_mailbox |
- | james_recipient_rewrite |
- | james_subscription |
- | james_user |
- | mytable |
- | openjpa_sequence_table |
- +-------------------------+
4.添加域信息和用户信息:
a.添加domain
- root@master:/opt/james3.0/bin# ./james-cli.sh -h localhost -p 9999 adddomain alibaba.cn
- adddomain command executed sucessfully in 129 ms.
b.添加user
- root@master:/opt/james3.0/bin# ./james-cli.sh -h localhost -p 9999 adduser kevin@alibaba.cn kevin
- adduser command executed sucessfully in 150 ms.
- root@master:/opt/james3.0/bin#
c.查看mysql 数据库信息:
- mysql> select * from james_domain
- +-------------+
- | DOMAIN_NAME |
- +-------------+
- | alibaba.com |
- +-------------+
- mysql> mysql> select * from james_user
- +-----------------------------------------------------------------
- | USER_NAME | PASSWORD_HASH_ALGORITHM | PASSWORD| version |
- ----------------[]-------------------+------------------------------
- | kevin@alibaba.com | MD5 | 9d5e3ecdeb4cdb7acfd63075ae046672| 1 |
- | ndot@alibaba.com | MD5 | 03ea35b8ddb76922d3f8e4ea9323ffb5| 1 |
- +-----------------------------------------------------------------
5.至此完成了对James3.x Repository的配置和测试。