您的位置:首页 > 运维架构 > Apache

Linux搭建apache james邮件服务器

2017-03-23 22:10 260 查看
首先说明下环境,我用的是腾讯云的服务器(Centos 7)系统安装的apache james,安装过程中也遇到贼多问题,现在自己写一篇博客纪念一下。

ps:写在最前面,感觉http://www.cnblogs.com/leechenxiang/p/6391987.html这篇博客的博主,看他的博客搭的环境遇到很多问题,加了这篇博主的QQ他都很耐心的讲解了,感谢大佬!。

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

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

而我们做java的接触的最多的就是apache的各大开源组件,而apache恰恰提供了邮件服务,那就是james(以前博主用腾讯企业邮,后面还是觉得一天50封还是太少了)。

1.首先下载james

http://james.apache.org/download.cgi#Apache_James_Server,我直接下的二进制文件稳定版的,毕竟稳定版经受住了考验。下完之后通过ftp传到云服务器的/usr下(我是这么做的)。



2.安装配置java环境

因为james是用java做的,所以你服务器一定要先安装java环境,没做的

就去百度百度吧,这个文章很多,但是我先声明,必须要配置JAVA_HOME,所以一定要正确配置,我发现在/etc/environment里面配置还没用,必须要配置在/etc/profile,大家最好先看看我这篇文章。http://blog.csdn.net/shouldnotappearcalm/article/details/64904253,因为我是先拷贝到自己电脑改了ftp传过去,百度发现windows换行符在linux下别人不认,是^M,有空在后面我在谢谢centos安装java吧。安装配置后.

echo ${JAVA_HOME}


打印出来看看,配置在/etc/environment里面虽然能打出来,但是后面讲的phoenix.sh别人不认。

3.安装配置james的检查

因为安装james服务器smtp会占用25端口,所以需要先检查25端口是否被占用,所以需要这样.



然后你用kill这个命令给他杀了就对了。

kill -9 pid


4.正式开始安装james

先解压tar.gz包

tar -zvxf james这个包的名字


解压完之后进入bin文件夹,去运行run.sh



大家多半会遇到这个问题,因为run.sh需要调用phoenix.sh然而没有权限.



然后服务器启动成功!

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

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



修改config.xml这个配置文件



ps:vi 里面想查询的话先按esc 然后输入 /你查的那个东西,按回车,到下一个按n

找到并且修改这段配置



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

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

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

注释掉此段代码



然后再注释掉这段代码



找到“127.0.0.0/8”,这里配置局域网广播地址,目的是允许此网段的机子可以访问到这个邮件服务器

接下来就是配置dnsserver了。我看到原文使用netstat -rn查看去配置那个dns服务器的ip,但是在我这儿行不通,先试试我这个。大家也可以看看我最开始提到那篇文章的方法。

cat /etc/resolv.conf




把这里两个ip记录下来。

然后再来配置SAR-INF下面的config.xml



上面两个配置的server是被我注释了的,配置的是在/etc/resolv下面的那两个,那两个是正确的。

然后把下面那个改为false。

先别急退出。把这里那个!changme!改成你想改的密码,等下用。



到这里基本差不多,但是别忘了上面我们直接配置了losergzr.cn,你不去hosts下面配置下你觉得可以吗。

vi /etc/hosts




基本配置就到这里了。

5.优化james配置

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



改成此配置即可



最后在bin下的phoenix.sh中添加(你先找找,我的是有的,直接添加后面的内容进去,但是报了个警告,说后面那个PermSize没用,我就把后面两个-XX删了没管了)如下配置



完之后直接reboot一下,开机去运行下james/bin/run.sh(因为我是云服务器,需要通过ssh去连接,然后我发现只要我ssh一断开,james服务就关了,发现是ssh跟james父子金成德关系,所以你这里运行run.sh最好是这样
nohup run.sh &


6.管理用户

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



centos直接安装(其他linux自己改改)

yum install telnet


安装完了再

telnet localhost 4555




用户是root,密码我没改就是!changeme!.

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



先添加一个用户



7.foxmail测试

下面我用foxmail演示下



这里的ip就写我的云服务器的ip地址。创建是成功的,接下来我们就发个邮件,你随便发个163或者qq邮箱(经测试,不能发送到我的腾讯企业邮,不知道能不能发到别人的企业邮),qq邮箱可能在垃圾箱里面,你自己登上去看看(我最开始的两封不在垃圾箱,后面的都在,你可以添加到白名单)。

8.javamail测试

我用javamail测试用的最简单的成功了,以前写的那个ssl的还没成功,慢慢来吧,javamail代码很多,去网上随便找一个吧。

ps:搭的时候遇到问题不少,如果有问题可以留言,大家一起讨论,如果ssh断开james服务停止那个问题记得看上面。最后再次感觉博客园的那个大佬。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息