使用centos部署Java邮件服务器(james)
前言:
James邮件服务器,即Apache James,是Apache组织旗下的一个子项目,是一款完全基于Java技术构建的开源邮件服务器软件,全面支持SMTP(简单邮件传输协议)、POP3(邮局协议版本3)以及IMAP(Internet消息访问协议)等标准邮件协议,能够为企业级用户提供高效且稳定的邮件服务解决方案。本次使用centos7,James版本(
james-server-spring-app-3.8.1),jdk11,mysql
一:下载安装
James官方下载:Apache James Project – Download
JDK11官方文档:Java Archive Downloads - Java SE 11 | Oracle 中国
- 安装jdk
1.删除系统自带的jdk版本
#查找
rpm -qa |grep java
rpm -qa | grep jdk
#删除
rpm -e --nodeps 将上面查出来的放这里进行删除
2.安装jdk11
tar -xvf jdk-11.0.24_linux-x64_bin.tar.gz
3.修改/etc/profile文件
vim /etc/profile
#追加内容:(我这里是解压在/home目录,自行修改自己的解压目录)
export JAVA_HOME=/home/jdk-11.0.24
export PATH=$PATH:$JAVA_HOME/bin
4.让配置生效
source /etc/profile
5.查询jdk版本,看看是否安装成功
jave -version
- 解压James
unzip james-server-spring-app-3.8.1-app.zip
二:修改配置
进入
james-server-spring-app-3.8.1/conf/目录
- 1.修改domainlist.xml文件
false
false
develop.com
develop1.com
- 2.修改james-database.properties文件配置数据库
数据库表结构,启动程序会会自动创建,这里配置数据库信息就行。
a.将mysql驱动包放入
james-server-spring-app-3.8.1/conf/lib/目录
b.修改
/james-server-spring-app-3.8.1/conf/目录下james-database.properties文件
database.driverClassName=com.mysql.cj.jdbc.Driver
database.url=jdbc:mysql://192.168.160.128:3303/james?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8
database.username=root
database.password=123456
# Supported adapters are:
# DB2, DERBY, H2, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, SYBASE
vendorAdapter.database=MYSQL
openjpa.streaming=false
datasource.validationQuery=select 1
- 3.修改mailetcontainer.xml文件
a.进入
/home/james-server-spring-app-3.8.1/conf/
#localhost修改成上面配置的域名(develop.com)
postmaster@develop.com
b.将文件存储替换成数据库存储
db://maildb/deadletter/error
c.注释RemoteAddrNotInNetwork
- 4.修改smtpserver.xml文件
develop.com
authRequired、verifyldentity设置为true能够防止此邮件服务被当做邮件中继服务,防止跨账号邮件行为,避免被域名信誉机构拉入黑名单,影响或无法正常发送邮件。
true
true
到这里重启就可以了
1.进入james-server-spring-app-3.8.1/bin目录
执行 ./run.sh 启动
启动自动创建表:
最后配置一下域名映射:
这里使用ssl/tsl协议就继续往下配置
三:ssl/tsl协议
- 1.下载sunjce_provider.jar
wget http://www.stonelu.com/public/sunjce_provider.jar -P james-server-spring-app-3.8.1/lib
或者将jar包上传放到 james-server-spring-app-3.8.1/lib
- 2.生成keystore:
#进入james-server-spring-app-3.8.1/conf目录执行,会生成keystore文件
#输入命令之后,设置密钥我这里这是123456,其它回车就行,到最后输入y
keytool -genkey -alias james -keyalg RSA -keystore keystore
- 3.修改smtpserver.xml文件
0.0.0.0:465
200
file://conf/keystore
PKCS12
123456
org.bouncycastle.jce.provider.BouncyCastleProvider
SunX509
- 4.修改pop3server.xml文件
pop3server
0.0.0.0:995
200
file://conf/keystore
PKCS12
123456
org.bouncycastle.jce.provider.BouncyCastleProvider
- 5.修改imapserver.xml文件
imapserver
0.0.0.0:993
200
file://conf/keystore
PKCS12
123456
org.bouncycastle.jce.provider.BouncyCastleProvider
以上配置完成重启。
四:演示
- 1.添加用户
在bin目录下使用命令创建qzh@develop.com,test@develop1.com, 密码都是123456
sh james-cli.sh -h localhost -p 9999 adduser qzh@develop.com 123456
sh james-cli.sh -h localhost -p 9999 adduser test@develop1.com 123456
- 2.windown安装foxmail工具
Foxmail官网下载地址:Foxmail for Windows
安装完成之后,windown配置一下hosts
进入C:\Windows\System32\drivers\etc\hosts文件(这里ip是我虚拟机的ip)
192.168.160.128 develop.com
- 3.测试
a.选择其它邮箱
b.登录用户
手动设置
这里登录qzh@develop.com账号,跟密码123456【SSL这里两个都需要勾上】
c.qzh发送邮件
d.test收到邮件
e.test回复邮件
f:qzh收到test回复邮件
综上所述,Apache James邮件服务器以其高度可扩展性、安全性、高性能和易于管理的特点,为企业级用户提供了高效且稳定的邮件服务解决方案。