基于Ubuntu配置Apache James邮件服务器

环境

服务器端:
-系统Ubuntu 22.04 64bit
-服务器性能:官网要求最低512MB RAM,对服务器其他性能没做具体要求。
客户端:Windows11 64bit

服务器端配置

安装java开发工具包

截止至本文撰写时,Apache James最新版本为3.9.0,从3.8.2版本,Apache James需要openjdk11环境支持,之前的版本需要的环境可能是openjdk8,本文中我们使用最新的3.9.0版本搭建邮件服务器,因此下载openjdk11开发工具包。
1.更新系统包列表:

sudo apt update

更新成功后会显示如下图所示
系统包更新完成

2.安装openjdk11工具包:

sudo apt install -y openjdk-11-jdk

安装完成如下图所示
openjdk安装完成

安装并运行Apache James

1.下载安装包

sudo mkdir -p ~/mail
cd ~/mail

首先在~目录下创建一个新目录用于安装,并进入该目录。

wget https://dlcdn.apache.org/james/server/3.9.0/james-server-spring-app-3.9.0-app.zip

执行上面的命令用于从远程服务器下载Apache James压缩包。
在国内部分云服务器上,安装包下载速度比较慢,比如在作者使用的云服务器上,下载速度高达36KB/s(hhh)。大家可以在自己电脑上挂上梯子,直接从浏览器访问上面的网址下载,速度会快很多,下载完之后用FTP工具直接上传到服务器中。
在这里插入图片描述
这里我还是等了一会儿给下载完了,如果没有错误基本上如下图所示。这里作者中断过一次下载,没有删除上一次下载残留的文件,所以下载下来的文件拓展名多了一个 .1 ,如果大家下载被中断,别忘了删除残余文件。
下载完成
2.解压安装包

sudo unzip james-server-spring-app-3.9.0-app.zip
sudo rm james-server-spring-app-3.9.0-app.zip

解压完成后,目录下会出现一个与压缩包同名的目录。
同名目录
如果解压失败,可能会出现如下图所示的情况,这可能是因为下载中断或网络中断导致的,删除压缩包后重新下载就行。
解压失败
3.配置Apache James

进入解压后的目录,其中conf目录包含了几乎所有的配置文件,我们需要修改部分文件内容以使服务器正常运行。作者这里直接使用ubuntu自带的vi文本编辑器。

  • mailetcontainer.xml
    修改
    此处为管理员的邮箱地址,作者这里直接用postmaster@sample.com代替,其中sample.com是我们自己的域名。
<!--
 <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
    <processor>relay-denied</processor>
    <notice>550 - Requested action not taken: relaying denied</notice>
 </mailet>
-->

注释掉中继IP地址限制错误。

  • smtpserver.xml
<helloName autodetect="true">sample.com</helloName>
<plainAuthEnabled>false</plainAuthEnabled>
<verifyIdentity>true</verifyIdentity>

将欢迎消息修改为我们的域名,并将plain认证机制和身份验证两项修改。

  • domainlist.xml
<autodetect>false</autodetect>
<autodetectIP>false</autodetectIP>
<defaultDomain>sample.com</defaultDomain>

关闭自动检测,使用我们自己的域名。

4.启动Apache James

cd ~/mail/james-server-spring-app-3.9.0/bin
./run.sh

进入Apache James解压后的目录bin中,运行run.sh启动。
这里可能会启动失败,显示端口已被占用。
端口被占用
我们需要手动排查Apache James常用的那些端口是否被占用,

netstat -tulpn | grep :25
netstat -tulpn | grep :465
netstat -tulpn | grep :587
netstat -tulpn | grep :993
netstat -tulpn | grep :143

作者之前曾经安装过dovecot并设置了开机启动,因而993端口被dovecot占用了,导致启动时报这个错。
993端口占用
出现这种情况可以将之前的进程关掉就行,作者这里原软件也卸载掉了。

sudo systemctl stop dovecot
sudo apt-get purge --auto-remove dovecot-core dovecot-imapd dovecot-pop3d
sudo rm -r /etc/dovecot/

关闭占用端口的进程后重新检查端口状态,可以看到返回值为空,此时重新启动Apache James就行。
成功启动

成功启动后会显示如上图信息。建议使用screen将服务挂载到后台运行。

5.添加邮箱账户
进入bin目录,使用James CLI创建新用户

cd ~/mail/james-server-spring-app-3.9.0/bin
./james-cli.sh AddUser user1@sample.com user1password

添加完成后,可以检查一下账户是否添加完成。

./james-cli.sh ListUsers

当然,大家可以先将给james-cli.sh脚本创建一个链接,这样不用每次都去bin目录下面执行指令了。

sudo ln -s /root/mail/james-server-spring-app-3.9.0/bin/james-cli.sh  /usr/local/bin/james-cli

在james-cli.sh脚本**BASEDIR=cd “$PRGDIR/…” >/dev/null; pwd``**这一行后面添加一行命令,强制切换工作目录,以免jmx服务器鉴权问题。

cd "$BASEDIR" || { echo "无法切换到 $BASEDIR"; exit 1; }

这样可以在任何地方使用james-cli工具。

james-cli AddUser user2@sample.com user2password
james-cli ListUsers

开放服务器端口

需要在云服务器控制台处开放的端口:
25,110,143,587
(加密端口,不上SSL加密可以先不开启)465,993,995
在这里插入图片描述

客户端配置

客户端这里作者选择foxmail作为客户端,foxmail大家可以直接去官网下载,foxmail官网。下载下来安装包运行后一路点下一步点到安装完成即可。
安装完成后,在主界面打开右上角菜单下拉框,在下拉框中找到账号管理,我们要添加一个新账号。
在这里插入图片描述
之后点击新建按钮添加一个新的电子邮箱账号
在这里插入图片描述
在新建账号界面选择其他邮箱
在这里插入图片描述
之后选择手动设置服务器配置
在这里插入图片描述
此处服务器类型选择POP3类型,输入邮件账号和密码后,从云服务器供应商那里找到我们云服务器的IPV4地址,因为本文中没有将POP和SMTP服务分开搭建到不同服务器上,因此这两个服务器地址都填同一个地址,我们也没有添加SSL加密,所以SSL复选框先不选择,SSL加密的添加我会在以后的文章中详细说明。完成上述步骤后点击右下角的创建按钮完成新账号的添加。
在这里插入图片描述
添加完新账号后,我们就可以试着自己去发两个邮件试试了,作者自己试了试给qq邮箱发送邮件,能成功发送到对面邮箱的垃圾桶里,并且也能收到qq邮箱发进来的邮件,至此大功告成。
在这里插入图片描述

结语:

作者最近是想搞个电子邮箱服务器用一用的,但是用dovecot和postfix那些感觉太难用了(整了半天缺胳膊少腿的),所以整了下Apache James这个比较成熟完整的,没想到还挺好用,所以记录了下来,限于作者水平,本文还缺少很多细节,有些地方甚至可能有点错误,希望大家帮忙指正,感谢感谢。

 [1]: https://james.apache.org/server/install.html
 [2]: https://blog.youkuaiyun.com/weixin_43317111/article/details/131362855
 [3]: https://www.cnblogs.com/eagle6688/p/17093139.html
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值