首先说明下环境,我用的是腾讯云的服务器(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这个包的名字
大家多半会遇到这个问题,因为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
james主要提供了如下命令,看名字就知道怎么用,十分简单
先添加一个用户
这里的ip就写我的云服务器的ip地址。创建是成功的,接下来我们就发个邮件,你随便发个163或者qq邮箱(经测试,不能发送到我的腾讯企业邮,不知道能不能发到别人的企业邮),qq邮箱可能在垃圾箱里面,你自己登上去看看(我最开始的两封不在垃圾箱,后面的都在,你可以添加到白名单)。
8.javamail测试
我用javamail测试用的最简单的成功了,以前写的那个ssl的还没成功,慢慢来吧,javamail代码很多,去网上随便找一个吧。
ps:搭的时候遇到问题不少,如果有问题可以留言,大家一起讨论,如果ssh断开james服务停止那个问题记得看上面。最后再次感觉博客园的那个大佬。