1.下载 james
http://james.apache.org/download.cgi#ApacheJamesServer,下载二进制稳定版2.3.2.1
即可(3.0版本变动比较大,暂时不考虑,3.0 开始才支持 IMAP 协议)。
2.安装、配置 java 环境
略去
3.安装前检查
centos 默认安装了 postfix,会占用 SMTP 的默认 25 端口,需要杀掉
lsof -i:25
kill -9 xxxPid
4.安装 james
unzip james-binary-2.3.2.1.zip
cd james-2.3.2.1
## 给启动文件添加执行权限
chmod +x bin/phoenix.sh bin/run.sh
5.配置 james
cd apps/james/SAR-INF/
修改 config.xml 这个配置文件
5.1 修改 servernames
servernames 部分修改为:
<servernames autodetect="false" autodetectIP="false">
<servername>xxx.com</servername>
</servernames>
- autodetct: true 表示自动侦测主机名,设成 false 会使用指定的 server name
- autodetectIP: true 表示会为你的 servername 加上ip,所以直接 false 就行
- servername: 改成所需要的域名
5.2 修改 mailet
注释掉以下部分
<!--
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
-->
5.3 注释掉 authorizedAddresses
<!--
<authorizedAddresses>127.0.0.0/8</authorizedAddresses>
-->
这里配置局域网广播地址,目的是允许此网段的机子可以访问到这个邮件服务器
5.4 修改 DNS 配置
cat /etc/resolv.conf
运行上述命令会得到类似如下结果:
# Generated by NetworkManager
search xxx
nameserver 8.8.8.8
nameserver xxxx
nameserver 8.8.4.4
在 <dnsserver><servers></servers></dnsserver>
中添加
<server>8.8.8.8</server>
<server>xxxx</server>
<server>8.8.4.4</server>
并修改 autodiscover
为 false
<autodiscover>false</autodiscover>
5.5 修改 root 密码
<account login="root" password="newPassword"/>
修改配置后需要重启 james
6.优化james配置
vi conf/wrapper.conf
修改以下部门即可:
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=128
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=512
还可以修改 bin/phoenix.sh
文件添加 java 内存相关参数
PHOENIX_JVM_OPTS="$PHOENIX_JVM_OPTS -Dnetworkaddress.cache.ttl=300"
7.启动 james
nohup /opt/james-2.3.2.1/bin/run.sh >/dev/null 2>&1 &
8.管理用户
telnet xxxip 4555
# root/xxxx
# 先添加一个用户
adduser test test
9.foxmail测试
随便发个网易邮箱测试一下,可能在垃圾箱里面,在垃圾箱的可以添加到白名单。
10.james 整合 mysql
默认情况下 james 的数据存储在apps/james/var
中,使用起来可能相当的不便。不过james-2.3.2提供了多种用户信息存储方案,如数据库存储,LDAP存储等。
默认情况下用户信息保存到 apps/james/var/users
,通过修改配置文件apps/james/SAR-INF/config.xml
,可以把用户信息保存到数据库中,配置方法如下:
10.1 下载 mysql-connector-java-5.xxx.jar
,拷贝到lib
目录中
10.2 在 mysql 中创建数据库 mail
10.3 用编辑器打开 apps/james/SAR-INF/config.xml
,找到<users-store>
10.3.1 存储位置配置
注释默认的文本存储配置:
<!--
<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>
10.3.2 配置数据库连接信息
<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/mail?autoReconnect=true</dburl>
<user>root</user>
<password>root</password>
<max>20</max>
</data-source>
10.3.3 邮件内容存储配置
注释以下代码:
<!--
<inboxRepository>
<repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>
-->
放开以下代码:
<inboxRepository>
<repository destinationURL="db://maildb/inbox/" type="MAIL"/>
</inboxRepository>
10.3.4 配置spool
注释以下代码:
<!--
<spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>\
-->
放开以下代码:
<spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
10.4 配置完成后启动james
如果启动正常,说明配置成功,如果不能正常启动,回头细细检查以上步骤。
启动成功后,数据库里多了三个表:inbox
–邮件信息,users
–用户信息,spool
–暂不清楚
10.5 发送邮件
添加用户并发送邮件,你的用户信息和邮件信息将会存储在数据库中
评论区