james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置
1.介绍
james是apache基金会下一款免费的提供pop3、stmp的开源免费邮件服务器,其最新版本为james sever 3.0,网上充斥着许多2.3版本的配置,3.0使用了spring的架构,配置上有些许不同,在配置过程中爬了很多坑,特此记录,给小伙伴们指明方向。后期会继续更新james的SDK的开发,敬请期待。
2.工具准备
准备搭建基于普通的配置版本,后期准备使用到数据库,此事后谈。
(1) james安装包: https://pan.baidu.com/s/1_T3BxgKyRoXZJodY2vBbDA 密码:hntp
其中第一个为foxmail客户端,用来进行测试,第二第三分别为 james源代码和james 安装包。
(2) jdk 由于james由java语言编写,依赖java jvm,故需要安装java jdk,james3.0.1依赖的jdk版本为(题外话:以保险起见我安装的是jdk 不是jre,读者可验证安装 并jre是否会有问题,讲道理应该没有问题,某些开源会需要jdk,安装jre是不行的,列如hadoop)。此处不再赘述java安装和配置。
我使用的java 8 链接:链接:https://pan.baidu.com/s/1LrGQCxHWO8TND7DMwM_CiQ 密码:yfv4
(3)foxmail客户端 链接:https://pan.baidu.com/s/1QZFo46zJrtNDvJtsRuQN2Q 密码:bl1g
3.1 windows 系统变量配置
winsdows默认dns localhost名为本地机器名,若 C:\Windows\System32\drivers\etc\hosts 文件中localhost未启用,启用一下,为了方便与其他服务器通信,可以配置自定义机器名,我配置的为 mocha.com,如下所示
3.2 解压
解压安装包到自己定义的目录下,我的是:C:\Program Files\james\james-server-app-3.0.1,目录如下图所示
---bin:程序各种工具和运行程序目录
---lib:依赖包
---conf:配置目录,我们配置就修改这里面的配置文件
---var:jamse server存储数据目录
3.3 修改配置文件
按照jamse doc所说其实不用修改配置文件的,不修改都有程序里都有默认配置,但实际运行却不是,会报各种错误,经测试, 所需修改的配置文件有如下,修改时将所有文件的后缀名.template去掉,然后复制到conf目录下,最终成功的配置文件打包 放在https://download.****.net/download/fanpei_moukoy/10393236
修改内容有【此处我的james部署ip为192.168.10.130】
配置文件名称 | 原内容 | 修改后内容 |
domainlist | <defaultDomain>localhost</defaultDomain> | <defaultDomain>mocha.com</defaultDomain> |
imapserver | <bind>0.0.0.0:143</bind> | <bind>192.168.10.130:143</bind> |
smtpserver | <bind>0.0.0.0:25</bind> | <bind>192.168.10.130:25</bind> |
pop3server | <bind>0.0.0.0:110</bind> | <bind>192.168.10.130110</bind> |
jmx | jmx.address=127.0.0.1 | jmx.address=192.168.10.130 |
mailetcontainer | <postmaster>[email protected]</postmaster> | <postmaster>[email protected]</postmaster> |
managesieveserver | <bind>0.0.0.0:4190</bind> | <bind>192.168.10.130:4190</bind> |
需要特别说明的是:我这里配置除了以上几个,还配置了bin目录下的wrapper.conf文件,配置参数和为什么要配置见文章
james使用(二):james3.0版本服务器搭建完成,收不到邮件javax.mail.MessagingException: Unable to access mailbox解决
3.4 安装
(1)、以管理员模式打开cmd(防止因为权限问题不能生成文件或文件夹,安装会生成文件和目录),进入解压的james bin目录下执行run.bat安装,如图
若出现服务启动多少秒,如下图所示则成功
(2)、然后键盘使用ctrl+c,并根据提示输入y停止当前服务,使用james命令进行安装james
如下代码所示,输入james 出现如下提示,这是james 提供的命令
-
C:\Program Files\james\james-server-app-3.0.1\bin>james
-
Usage: james { console : start : pause : resume : stop : restart : install : rem
-
ove : status }
命令 | 意义 |
---|---|
console | 以console模式启动james并将日志输出到console窗口上(作用类似于上文中的run,bat) |
start | 启动james服务 |
pause | 暂停james服务 |
resume | 重置james |
stop | 停止james服务 |
restart | 重新启动 |
install | 安装james到系统服务 |
remove | 从系统服务移除james服务 |
status |
查看james服务启动状态 |
接下来的操作步骤如下:
- 安装服务到系统:james install
- 启动服务:james start
- 查看服务状态 james status
如图成功,running Yes
(3)、使用james-cli命令配置邮件后缀域名和用户
相同的如下图所示,输入james-cli出现很多命令提示,这里我们只介绍前面常用的几个,具体命令含义,读者后续可查看官方doc或者百度,命令使用不区分大小写
命令 | 意义 |
adduser | 添加用户 格式为 adduser <name> <passwd> |
removeuser | 移除用户 格式为 removeuser [email protected] [移除时必须跟上全称即必须@加域名] |
listusers | 列出所有用户 |
adddomain | 添加域名 域名为@后的那部分,表示隶属于哪个公司,例如网上有163.com qq.com等,此处可自定义,我定义的就是mocha.com |
remvedomain | 移除域名 |
listdomains | 列出所有域名 |
setpassword | 单独设置某用户的密码 格式为setpassword <username> <passwd> 其中username 为全称,例如[email protected] |
containsdomain | 检测是否包含某域名 |
接下来,首先执行 james start启动server,然后再执行以下两步操作
- 添加域名 mocha.com
- 添加用户 [email protected] [email protected] 并设置密码为test
-
C:\Program Files\james\james-server-app-3.0.1\bin>james-cli -h 192.168.10.130 ad
-
ddomain mocha.com
-
AddDomain command executed sucessfully in 281 ms.
-
C:\Program Files\james\james-server-app-3.0.1\bin>james-cli -h 192.168.10.130 ad
-
duser [email protected] test
-
AddUser command executed sucessfully in 261 ms.
-
C:\Program Files\james\james-server-app-3.0.1\bin>james-cli -h 192.168.10.130 ad
-
duser [email protected] test
-
AddUser command executed sucessfully in 188 ms.
执行成功后利用listdomains 和listusers查看,其中-h 192.168.10.130为连接服务端地址,由于我们使用在jmx中配置时地址改成了192.168.10.130,固此处必须使用相同ip才可进行jmx连接,不能使用127.0.0.1,否则连接失败
4.使用foxmail客户端测试james server
4.1 登录第一个账号,如图输入用户和密码点击创建
4.2 配置服务器
在途中红色框位置输入james安装所在的ip 192.168.10.130,端口号由于使用标准协议不用修改,此处我未进行修改直接点创建成功,原因在于我已经在hosts中配置dns映射,若未配置则需要输入ip
4.3添加另一个账号
如下图所示,点击左下角【创建】,填写用户名和服务器信息,点击【创建】后确定,添加完成:
4.5 编写邮件并发送后,查看是否能收到邮件
后记:我最终配置配置完的包已上传至:已配置好了的 james-server-app-3.0.1版本需要的小伙伴可以去下载。