手动搭建apache james邮件服务器,实现邮件功能
最近一直在搞邮件这块,本来我们邮件发送是用的腾讯免费的企业邮箱,邮件功能没有问题,但是由于邮件的限制,如下:

这些限制导致我们的部分客户是收不到邮件的,哪怕付费,这样的固定频率限制也是无法解决的,可以说我们国内的邮件厂商都是这样,而国外的却要收费。
那么问题来了,如何突破发送邮件的频率限制?
1. 成为该企业用户的白名单,也就是说有关系,让邮件厂商后台开放就行
2. 自己搭建邮件服务器,其实这个就是最实在的
周末花了两天时间搭建了邮件服务器,也走了不少弯路,那么咱们今天就来说说
我自己搭了两款,一款是sendMail,这个搭建过程十分简单,一步一步安装,然后解析一下域名就能发送,sendMail只限于linux部署
而我们做java的接触的最多的就是apache的各大开源组件,而apache恰恰提供了邮件服务,那就是james

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

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

既然3.0还没有稳定版本并且带有bug,而我们仅仅只需要收发邮件,那么使用2.3的稳定版本是当然没有问题的
好!那我们现在开始使用jame2.3.2的稳定版本来做我们的邮件服务器:
首先需要在linux上安装jdk,我们使用的是JDK7(安装步骤略)

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

如果被占用了,关闭即可
使用ftp工具把james-2.3.2的压缩包上传至服务器:

解压缩并且重命名后:


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

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

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

然后服务器启动成功!
接下来我们就来进行james的相关配置:
ctrl+c 可以退出运行着的后台,然后我们进入以下目录

修改config.xml这个配置文件

找到并且修改这段配置

改为:

autodetct:true 表示自动侦测主机名,设成false会使用指定的server name
autodetectIP:true 表示会为你的servername加上ip,所以直接false就行
servername就改成你所需要的域名就行
注释掉此段代码

配置DNS Server,查看DNS

再查看主机dns

然后再设置如下:

找到并且注释这段代码

然后再修改hosts


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

改成此配置即可

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

配置完后reboot一下
computer rebooting... ...
重启完后启动james,sh run.sh
这个时候启动完毕,james配置成功。这个时候,我们还是需要用户的,没有用户就不能不收发邮件了
修改用户名密码,这个主要用来登录james进行相关操作的

修改完后保存,这个时候我们就要添加用户了
先登录连接上james,但是发现命令不存在

那么直接安装一下即可

再次登录发现成功

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

按照命令添加用户

OK,至此所以配置完毕,我们使用javamail来测试一下吧!
测试发送到163,搜狐,以及qq邮箱,163可以接受,而搜狐和qq不能接受,设置白名单就行

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

关于发送的邮件被其他邮件厂商当成垃圾邮件,这个暂时没有解决,如果哪位大侠知道请随时指点一二!
手动搭建apache james邮件服务器,实现邮件功能的更多相关文章
- 手动搭建自己的nuget服务器及使用
这篇文章的主要目的: 1.搭建自己的私有的nuget服务器 2.打包代码为nuget包 3.在其他项目中使用私有服务器上的nuget包 一. 搭建自己的nuget服务器 1. 创建一个空的ASP.NE ...
- 在CentOS上搭建apache和PHP服务器环境(转)
1.您也可以使用一键自动部署环境的工具,请参见网友开发的这个工具 http://www.centos.bz/2013/08/ezhttp-tutorial/ 2. 安装: wget -c http:/ ...
- 手动搭建latex公式渲染服务器
latex公式渲染有两种类型,一种是HTML形式展示公式,另一种是图片形式展示公式.如果是HTML形式展示公式,渲染是在前端完成的,一般会比较缓慢.知乎采取的方式是以图片形式展示公式.codecogs ...
- 在scientificlinux7(centos7)中搭建apache+php本地服务器
首先安装httpd(apache), 开始没有注意,以为可以这样安装 yum install apache 结果不对,搜索下 yum -qvh apache 命令是错的,在来 yum search a ...
- 搭建james邮件服务器
把james解压到任何一个非中文无空格目录下: lib下添加必要的jar文件: 运行run.bat命令服务器,使用期间不要关闭. 创建邮件数据库 创建配置文件:james-database.prope ...
- Postfix+Dovecot+MySQL搭建邮件服务器
网上有很多使用Postfix搭建邮件服务器的文章,但目前貌似没有看到较为完整的一篇.本例将尝试在Ubuntu系统中使用Postfix+Dovecot+MySQL搭建邮件服务器. 说到邮件服务器,网上有 ...
- Windows Server 2003搭建邮件服务器
Windows Server 2003搭建邮件服务器 由于Windows Server 2003默认是没有安装我们搭建邮件服务器所需要的POP3和SMTP服务的,因此需要我们自己来安装.方法如下: 1 ...
- centos7搭建postfix邮件服务器
在使用qq等邮件服务器厂商提供的邮件服务后,发现他们的邮件发送数量是有限制的,随着公司的业务的需求下,我们需要搭建一个邮件服务器,邮件服务器可以帮助我们在一些提醒方面和消息推送方面起到帮助. 理论性语 ...
- 企业网管用linux搭建邮件服务器为公司降本增效
在企业中,节约一分钱比挣一分钱容易得多,这是指导企业降本增效的名言之一啊,作为一名企业里的IT人员我是深有感触,尤其是IT方面,除了在互联网公司是生产力的排头兵,在制造业单位里那一般都是后勤保障部门, ...
随机推荐
- [Unity]Unity开发NGUI代码实现ScrollView(滚动视图)
Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: ...
- 3个人一起写的EI论文可以检索到啦~ --> Exploring the use of a 3D Virtual Environment in Chinese Cultural Transmission
<a href='http://www.engineeringvillage.com/blog/document.url?mid=cpx_10ed754f14b5b7381b6M764b1017 ...
- 位图文件(BMP)格式以及Linux下C程序实现(转)
源:位图文件(BMP)格式以及Linux下C程序实现 说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图 ...
- Python字符串的encode与decode研究心得——解决乱码问题
转~Python字符串的encode与decode研究心得——解决乱码问题 为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“/xe4/xb8/xad/xe6/x96/x8 ...
- 【转】 谈谈C++中的swap函数
1,最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符. template <class T> void swap ( T& a, T& b ) { T c(a) ...
- JQuery中根据表单元素动态拼接json 字符串
// <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免
TCP的拥塞控制 1. 拥塞:即对资源的需求超过了可用的资源.若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降. 拥塞控制:防止过多的数据注入到网络中,这样 ...
- .NET Core installation guide
.NET Core installation guide 1.Download Visual Studio 2015 Make sure you have Visual Studio 2015 U ...
- 360路由器+花生壳实现外网访问SVN服务器
注册花生壳账号 花生壳注册地址:https://console.oray.com/passport/register.html?fromurl=http%3A%2F%2Fhsk.oray.com%2F ...
- php session 生命周期代码实例
php session 生命周期代码实例 我们为什么需要Session,就是因为我们需要存储各个用户的状态数据.那么试问,如果由你来设计解决这个需求的方案,那么也许你会设置这样一个数据 ...