目录

 

前言

一、apache James 3.5.0 介绍

二、使用步骤

三、创建用户

四、Mailet容器配置

五、使用 SSL/TLS 协议 Linux下操作:

总结



前言

基于 apache James 3.5.0 搭建本地windows邮件服务器,由于我只有阿里云的Linux 服务器关闭了25端,必须使用SSL+ 465端口。为了快速搭建并测试


 

一、apache James 3.5.0 介绍

  https://james.apache.org/server/install.html   这是官方地址具体介绍

 是一款由Java 编写的邮件服务器 目前网上教程大部分是 2.3.2 的,现在apache 已经不维护2.3.2了。3.5.0是官方稳定版

二、使用步骤

准备环境  JDK1.8  mysql驱动包8.0   MySQL服务器5.7

1.下载James 3.5.0

链接:https://pan.baidu.com/s/1oON6m1tzH6V5JufgiEs9KQ 
提取码:ypte 

2.安装配置James 3.5.0

直接解压文件 进入 bin/ 目录下执行run.bat 看是否可运行成功。一般是可以什么都不改直接运行的。

第一步:修改存储类型,进入到 一下目录修改james-database.properties 文件,内容如下

第二步:放入MySQL驱动jar在该目录下

第三步:配置域名 修改以下几个文件  domainlist.xml    mailetcontainer.xml

domainlist.xml配置如下    必须将红框的设置为false

mailetcontainer.xml 配置 找到如下配置  

    <context>
        <postmaster>postmaster@wang168.com</postmaster>  修改你的域名
    </context>

只有如下 :file:// 不做修改

 

smtpserver.xml 配置: <helloName autodetect="true">wang168.com</helloName> ,<authRequired>true</authRequired>,<verifyIdentity>true</verifyIdentity>

 

最后在 host目录配置 192.168.1.1  wang168.com 域名映射  不然会有意想不到的错

 

 

部署过程中遇到的错误:  

建表报错:Index column size too large. The maximum column size is 767 bytes.

        SET GLOBAL innodb_file_format = BARRACUDA;

        SET GLOBAL innodb_large_prefix = ON;

三、创建用户

启动James 并添加用户

  • 添加邮箱账号Windows  和 Linux

james-cli.bat -h localhost -p 9999 adddomain wang168.com  (此处命令尤为重要,直接添加用户会报密码无效)
james-cli.bat -h localhost -p 9999 adduser chao@wang168.com 123456

Linux下  添加用户   sh james-cli.sh -h localhost -p 9999 AddUser Danny@develop.com sec123

执行后,即添加了一个邮箱账号chao@wang168.com,密码为123456

安装Foxmail

四、Mailet容器配置

编写自定义扩展 

import javax.mail.MessagingException;

import org.apache.mailet.Mail;
import org.apache.mailet.base.GenericMailet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyMailet extends GenericMailet{
  private static final Logger logger = LoggerFactory.getLogger(MyMailet.class);
  @Override
  public void service(Mail mail) throws MessagingException {
    log("log via mailet logger with INFO level");
    logger.info("Log via slf4j with INFO level !!! Add log4j.logger.com.test=INFO, CONS, FILE in the log4j.properties");
    logger.debug("Log via slf4j with DEBUG level !!! Add log4j.logger.com.test=DEBUG, CONS, FILE in the log4j.properties");
  }
}

将自己的Java程序打成jar包后 放入  / conf / lib 中 

James3.5.0 不再需要mailetpackages实体,mailet和matchers的class属性现在采用完全限定的类名,例如

<mailet match =“ All” class =“ com.your.company.MyMailet” /> 重启James服务

五、使用 SSL/TLS 协议 Linux下操作:

    注:此处参考一下博客 : https://blog.csdn.net/qq_33945246/article/details/91417413

  • 将 sunjce_provider.jar (在 jre/lib/ext 下有) 到 lib 下(注意:不是 conf/lib 下)
  • wget http://www.stonelu.com/public/sunjce_provider.jar -P james-server-app-3.1.0/lib
  • 生成 keystore      keytool -genkey -alias james -keyalg RSA -keystore keystore
  • 接下来演示 SMTP 使用 SSL/TLS 协议(POP 和 IMAP 类比即可):

1)配置文件:

SMTP - smtpserver.xml

POP - popserver.xml

IMAP - imapserver.xml

 

2)端口:

POP3 - port 110, Secure POP3 - port 995
IMAP - port 143, Secure IMAP4 - port 993
SMTP - port 25, Secure SMTP - port 465

  • 最后 重启服务即可

总结

网上没有关于3.5.0的 安装及配置,公司需要搭建自己的邮件服务器,先前搭建了2.3.2的,升级3.5.0  

把James 部署到windows下 James提供了使用 Java server wrapper 方式注册。2.3.2的版本需要自己下载 Java server wrapper 3.2.3 jar包 安装该容器。但是2.3.2版本会有很多问题,当时James团队就没做注册Linux服务自动启动

现在James3.5.0 架构更改使用Java server wrapper 注册成Linux服务的方式变了。可以一键注册成windows服务和Linux服务。windows下注册自行百度。

Linux下注册需要使用到 /bin目录下的wrapper-linux-x86-64文件,不懂可以去Java server wrapper 官网看看部署启动方式就不做详细介绍了。

James 的收件发件信息存储与JAMES_MAIL 表  

Logo

更多推荐