一、Win10下配置
什么是apache James?
Java Apache Mail Enterprise Server-通常称为James-是Apache组构建的可移植、安全和100%纯Java企业邮件服务器。但是,由于它的可插拔协议体系结构和梅莱用于电子邮件的基础设施,就像servlet对Web服务器所做的一样。自从DARPA资助最终成为互联网的早期,电子邮件服务器就一直存在,但是James为通常被称为因特网第一个杀手的应用提供了新的可能性。
①一个支持多协议的企业级邮件服务器
②开源,多平台。开源的项目意味着不存在版本的问题,减少了诸多在法律上的问题,也保证了对于平台的扩展性的保持,纯java的实现也就意味着不会存在Windows和linux等系统不兼容的问题
本次选用 james-2.3.2.1版本。
下载之后直接解压,打开bin文件夹,运行里面的run.bat就是启动服务器了。如果出现下面的信息则说明启动成功:
要关闭 James 服务,请使用 Ctrl + C
注意:启动前请确保您的JDK环境变量如JAVA_HOME等已经设置好;James 启动时,其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用。如果这几个端口已经占用的话,打开run.bat是会一闪而过的,请在james的文件路径apps/james/SAR-INF下打开config.xml文件,这个文件是服务器的配置文件,用notepad++或editplus等编辑器打开。CTRL+F找到pop3server这个标签:把110改成其他端口。
同理,把下面smtpserver和nntpserver的端口也改掉。
我们修改完这个几个端口后,就可以顺利启动James服务了。
当然也有可能会出现这个错误,如:文件名、目录名或卷标语法不正确。如果窗口一闪而过的话又想看错误提示的话,可以在bin下开一个命令提示符,输入run.bat,如果启动出错则会停止下来,不会一闪而过。这时候可以看一下错误信息,是不是有“文件名、目录名或卷标语法不正确。 ”这个错误信息,如果有的话还要对config.xml做一个修改:找到destination标签,可以看到这一段:
发现是不能生成文件,把这个注释掉,然后找到下面的这段把注解去掉
表示用mysql数据库。数据库配置加在database-connections 标签下。需要将 MySQL-connector-Java-5.1.7-bin.jar 导入在 james\lib 下,同时修改config.xml配置:
password是你mysql数据库的密码,还要在mysql中创建一个mail数据库,要不是会报错的。如果没有mysql数据库的话就去装一个,安装教程也不在这说了。
最后应该就可以启动成功了,如果还出现一些奇奇怪怪的问题,请自行www.google.com/,小弟能力有限,补充说明一下,如果你是用Wamp来开启mysql服务的话,那么请记得在使用mysql之前务必先打开Wamp,要不开启james服务的时候也是会失败的。
二、配置James
默认配置启动James服务,只能给内网发送邮件,我们的要求是可以给外网的其他邮箱发邮件,比如163,qq,sina等邮箱发送邮件,那么我们必须修改James默认配置,接下来我们就来看看如何修改还是打开config.xml文件,找到postmaster标签:
把localhost该成你自己想要的邮箱域名, autodetect和autodetectIP设置为“false”,这里localhost假设改成 clararun.com 如果开了一个帐号 jack ,那么他的邮件地址就是 jack@clararun.com(注意两个localhost都要改),改完如下:
修改理由:
1.autodetect设为true的话会自动侦测你的主机名,设成false会用你指定的servername
2.autodetectIP设为true会为你的servername加上IP,然而并不需要
3.servername改为你的server名字,如clararun.com
4.在C:\WINDOWS\System32\drivers\etc\host文件中添加127.0.0.1 clararun.com
实际上我把这个配置文件中所有的localhost都改成了我的域名;把所有的autodetect属性,修改为false,autodetectIP也设为false;查找所有myMailServer,替换为域名。
然后找到下面这段将其注释掉,
然后找到下面的这段并把它的注释去掉:
找到dnsserver标签:
在标签下加入:
上面的三个IP要根据你的电脑情况来填写,第一个是你电脑的IP地址,也就是服务器地址,第二和第三个都是DNS地址,这三个地址都可以通过在cmd输入命令ipconfig中查看得到。
这样就算配置完成了,重新启动一下服务器。
三、创建邮箱账号
打开cmd,输入telnet localhost 4555,会提示你输入login id和password,这个id和password可以在config.xml中修改,CTRL+F查找password,把login和password的值换掉。
创建新用户的命令是adduser username password
例如adduser clara clara123
adduser jack jack123
输入命令listusers可以查看所有用户。
下面是一些命令的含义:
命令含义
help---------------->获取帮助
listusers---------------->显示所有用户
countusers---------------->显示当前用户数量
adduser [username] [password]---------------->添加用户
verify [username---------------->]验证用户是否存在
deluser [username]---------------->删除用户
setpassword [username] [password]-------------------------------->>为指定用户设置密码
setalias [user] [alias]---------------->为用户设置别名
showalias [username]---------------->显示用户别名
unsetalias [user]---------------->取消别名
setforwarding [username] [emailaddress]---------------->将指定用户的email转发到指定的email地址
showforwarding [username]---------------->显示指定用户转发的email地址
unsetforwarding [username]---------------->取消转发
user [repositoryname]---------------->改变用户存储的仓库
shutdown---------------->关闭当前虚拟机
quit---------------->关闭连接
这里要注意的是,命令行下输入命令要小心点,因为输错了就很不好撤回。
注意:在执行telnet时有时会出现telnet不是内部命令,这是因为telnet服务器没有开启,在window功能项内启用该功能即可:控制面板--->程序--->启用或关闭Windows功能
四、使用邮件客户端测试收发邮件
1.打开Foxmail客户端,进入账号管理,新建账户,如下:
2.填写Email地址和密码,Email地址就是clara@clararun.com,密码是通过命令行添加的clara123,如下:
3.等待验证过后会来到这个页面,将POP服务器和SMTP服务器都设置为你的IP地址,其他均为默认:
4.点击创建,完成对账户的添加
按照上述操作,我们再添加账户jack。
当账户都添加完成后,就可以在clara和jack之间进行邮件的收发了。
至此,邮件服务器的搭建和客户端的测试已经完成了,其实还可以用java编写客户端来收发邮件的,这个代码网上也有很多,直接copy下来,设置一些邮箱参数和内容也是可以的。要注意的是在用javamai发邮件的时候,连接smtp服务器的时候要设置一个username,这个username和发件邮箱是有点区别的,它是用来认证用户的,如果你的邮箱为clara@clararun.com,那么你的username就应该是clara,这一点要注意了,否则会连接失败。
五、linux下配置James
首先需要在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来测试一下吧!