手动搭建apache james邮件服务器,实现邮件功能

最近一直在搞邮件这块,本来我们邮件发送是用的腾讯免费的企业邮箱,邮件功能没有问题,但是由于邮件的限制,如下:

手动搭建apache james邮件服务器,实现邮件功能

这些限制导致我们的部分客户是收不到邮件的,哪怕付费,这样的固定频率限制也是无法解决的,可以说我们国内的邮件厂商都是这样,而国外的却要收费。

那么问题来了,如何突破发送邮件的频率限制?

1. 成为该企业用户的白名单,也就是说有关系,让邮件厂商后台开放就行

2. 自己搭建邮件服务器,其实这个就是最实在的

周末花了两天时间搭建了邮件服务器,也走了不少弯路,那么咱们今天就来说说

我自己搭了两款,一款是sendMail,这个搭建过程十分简单,一步一步安装,然后解析一下域名就能发送,sendMail只限于linux部署

而我们做java的接触的最多的就是apache的各大开源组件,而apache恰恰提供了邮件服务,那就是james

手动搭建apache james邮件服务器,实现邮件功能

james目前已经更新到了3.0的beta5版本,这个版本不是稳定版的

手动搭建apache james邮件服务器,实现邮件功能

而且在jdk7+会有bug存在,我也试过的确会报错

手动搭建apache james邮件服务器,实现邮件功能

既然3.0还没有稳定版本并且带有bug,而我们仅仅只需要收发邮件,那么使用2.3的稳定版本是当然没有问题的

好!那我们现在开始使用jame2.3.2的稳定版本来做我们的邮件服务器:

首先需要在linux上安装jdk,我们使用的是JDK7(安装步骤略)

手动搭建apache james邮件服务器,实现邮件功能

邮件服务器的smtp使用25端口,必须保证此端口没有被占用

手动搭建apache james邮件服务器,实现邮件功能

如果被占用了,关闭即可

使用ftp工具把james-2.3.2的压缩包上传至服务器:

手动搭建apache james邮件服务器,实现邮件功能

解压缩并且重命名后:

手动搭建apache james邮件服务器,实现邮件功能

手动搭建apache james邮件服务器,实现邮件功能

进入bin目录,并且运行run.sh

手动搭建apache james邮件服务器,实现邮件功能

哎哟,发现报错,没有这个命令

手动搭建apache james邮件服务器,实现邮件功能

没关系,我们给phoenix.sh加上权限即可

手动搭建apache james邮件服务器,实现邮件功能

然后服务器启动成功!

接下来我们就来进行james的相关配置:

ctrl+c 可以退出运行着的后台,然后我们进入以下目录

手动搭建apache james邮件服务器,实现邮件功能

修改config.xml这个配置文件

手动搭建apache james邮件服务器,实现邮件功能

找到并且修改这段配置

手动搭建apache james邮件服务器,实现邮件功能

改为:

手动搭建apache james邮件服务器,实现邮件功能

autodetct:true 表示自动侦测主机名,设成false会使用指定的server name

autodetectIP:true 表示会为你的servername加上ip,所以直接false就行

servername就改成你所需要的域名就行

注释掉此段代码

手动搭建apache james邮件服务器,实现邮件功能

配置DNS Server,查看DNS

手动搭建apache james邮件服务器,实现邮件功能

再查看主机dns

手动搭建apache james邮件服务器,实现邮件功能

然后再设置如下:

手动搭建apache james邮件服务器,实现邮件功能

找到并且注释这段代码

手动搭建apache james邮件服务器,实现邮件功能

然后再修改hosts

手动搭建apache james邮件服务器,实现邮件功能

手动搭建apache james邮件服务器,实现邮件功能

然后我们在来优化一下James内存使用,修改此目录下的这个文件

手动搭建apache james邮件服务器,实现邮件功能

改成此配置即可

手动搭建apache james邮件服务器,实现邮件功能

最后在bin下的phoenix.sh中添加如下配置

手动搭建apache james邮件服务器,实现邮件功能

配置完后reboot一下

computer rebooting... ...

重启完后启动james,sh run.sh

这个时候启动完毕,james配置成功。这个时候,我们还是需要用户的,没有用户就不能不收发邮件了

修改用户名密码,这个主要用来登录james进行相关操作的

手动搭建apache james邮件服务器,实现邮件功能

修改完后保存,这个时候我们就要添加用户了

先登录连接上james,但是发现命令不存在

手动搭建apache james邮件服务器,实现邮件功能

那么直接安装一下即可

手动搭建apache james邮件服务器,实现邮件功能

再次登录发现成功

手动搭建apache james邮件服务器,实现邮件功能

james主要提供了如下命令,看名字就知道怎么用,十分简单

手动搭建apache james邮件服务器,实现邮件功能

按照命令添加用户

手动搭建apache james邮件服务器,实现邮件功能

OK,至此所以配置完毕,我们使用javamail来测试一下吧!

测试发送到163,搜狐,以及qq邮箱,163可以接受,而搜狐和qq不能接受,设置白名单就行

手动搭建apache james邮件服务器,实现邮件功能

最终受到邮件就是这样的,红框匹配james中新增加的用户以及域名

手动搭建apache james邮件服务器,实现邮件功能

关于发送的邮件被其他邮件厂商当成垃圾邮件,这个暂时没有解决,如果哪位大侠知道请随时指点一二!

上一篇:CentOS、Ubuntu、Debian三个linux比较异同


下一篇:[转帖]关于Ubuntu与Debian的关系,了解!