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

       james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

 其中第一个为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,如下所示

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

3.2 解压

解压安装包到自己定义的目录下,我的是:C:\Program Files\james\james-server-app-3.0.1,目录如下图所示

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

    ---bin:程序各种工具和运行程序目录

    ---lib:依赖包

    ---conf:配置目录,我们配置就修改这里面的配置文件

    ---var:jamse server存储数据目录

3.3 修改配置文件

按照jamse doc所说其实不用修改配置文件的,不修改都有程序里都有默认配置,但实际运行却不是,会报各种错误,经测试, 所需修改的配置文件有如下,修改时将所有文件的后缀名.template去掉,然后复制到conf目录下,最终成功的配置文件打包 放在https://download.csdn.net/download/fanpei_moukoy/10393236

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

修改内容有【此处我的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安装,如图

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

若出现服务启动多少秒,如下图所示则成功

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

   (2)、然后键盘使用ctrl+c,并根据提示输入y停止当前服务,使用james命令进行安装james

如下代码所示,输入james 出现如下提示,这是james 提供的命令

 
  1. C:\Program Files\james\james-server-app-3.0.1\bin>james

  2. Usage: james { console : start : pause : resume : stop : restart : install : rem

  3. ove : status }

james command
命令  意义
console  以console模式启动james并将日志输出到console窗口上(作用类似于上文中的run,bat)
start  启动james服务
pause  暂停james服务
resume  重置james
stop  停止james服务
restart  重新启动
install  安装james到系统服务
remove  从系统服务移除james服务
status

 查看james服务启动状态

接下来的操作步骤如下:

  1. 安装服务到系统:james install
  2. 启动服务:james start
  3. 查看服务状态 james status

如图成功,running Yes

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

(3)、使用james-cli命令配置邮件后缀域名和用户

相同的如下图所示,输入james-cli出现很多命令提示,这里我们只介绍前面常用的几个,具体命令含义,读者后续可查看官方doc或者百度,命令使用不区分大小写

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

james-cli command
命令  意义
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,然后再执行以下两步操作

 
  1. C:\Program Files\james\james-server-app-3.0.1\bin>james-cli -h 192.168.10.130 ad

  2. ddomain mocha.com

  3. AddDomain command executed sucessfully in 281 ms.

  4.  
  5. C:\Program Files\james\james-server-app-3.0.1\bin>james-cli -h 192.168.10.130 ad

  6. duser [email protected] test

  7. AddUser command executed sucessfully in 261 ms.

  8.  
  9. C:\Program Files\james\james-server-app-3.0.1\bin>james-cli -h 192.168.10.130 ad

  10. duser [email protected] test

  11. 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 登录第一个账号,如图输入用户和密码点击创建

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

4.2 配置服务器

在途中红色框位置输入james安装所在的ip 192.168.10.130,端口号由于使用标准协议不用修改,此处我未进行修改直接点创建成功,原因在于我已经在hosts中配置dns映射,若未配置则需要输入ip

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

4.3添加另一个账号

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

如下图所示,点击左下角【创建】,填写用户名和服务器信息,点击【创建】后确定,添加完成:

james使用(一):windows环境下james3.0.1版本邮件服务器搭建及配置

4.5 编写邮件并发送后,查看是否能收到邮件

后记:我最终配置配置完的包已上传至:已配置好了的 james-server-app-3.0.1版本需要的小伙伴可以去下载。