Apache James 2.3.2 配置简要
1. 背景
最近需要培训几个刚入职的,模拟做些应用,所以,很多东西要自己搭建,比如邮件服务器。喜欢纯Java的东西,选了Apache James。James是个功能很强大的邮件服务器,只所以喜欢纯Java的东西,因为它扩展比较灵活,提供了Matcher 和 Mailet 接口来扩展服务器应用功能。项目本身不涉及邮件服务器开发,所以本文只描述了服务器配置过程。
2. 目录结构
├─apps
│ └─james
│ ├─conf
│ │ └─samples
│ │ └─fetchmail
│ ├─logs
│ ├─SAR-INF
│ └─var
│ │ ├─address-error
│ │ ├─error
│ │ ├─inboxes
│ │ │ ├─user_1
│ │ │ ├─user_2
│ │ ├─outgoing
│ │ ├─relay-denied
│ │ ├─spam
│ │ └─spool
│ ├─nntp
│ │ ├─articleid
│ │ ├─groups
│ │ │ ├─org.apache.avalon.dev
│ │ │ ├─org.apache.avalon.user
│ │ │ ├─org.apache.james.dev
│ │ │ └─org.apache.james.user
│ │ ├─spool
│ │ └─temp
│ └─users
├─bin
│ └─lib
├─conf
├─ext
├─lib
├─logs
├─temp
├─tools
│ └─lib
└─work
└─james-1272243397890
└─SAR-INF
└─lib
3. 配置
James的默认包括简单的邮件服务,包括收发邮件,位于apps/james。因此,我们只需要简单配置一下/SAR-INF目录下的config.xml文件即可。
Config.xml文件中包含几个部分:
(1)<James>标签
主要包含配置管理员信息,包括管理员邮箱地址、邮件服务器名称、用户名是否忽略大小写、是否跳转,以及邮件存放位置,采用何种存储方式(文件or数据库)
(2)<mailetpackages>和<matcherpackages>标签
用来配置加载mailet和matcher的位置,如果有扩展,保持默认
(3)<spoolmanager>标签
一些processor及mailet的容器配置
(4)<dnsserver>标签
DNS服务器配置,主要是配置DNS服务器的位置,以及最大存储数,默认50000无须修改,另外,DNS server可配置多个,因此,内网和外网的DNS服务器都需要配置,否则可能会认不到域名
(5)<remotemanager> 标签
远程管理配置,属性enable=TRUE控制是否能远程控制
James通过telnet模式来管理,在这里可以配置telnet的端口号,登陆的账户名/密码等;
较为重要的。
(6)<pop3server>标签
邮件接收服务器配置,<bind>需要修改,默认为localhost
(7)<smtpserver>标签
邮件发送服务器配置,<bind>需要修改,默认为localhost;另外如果需要使用SSL,需要配置。
(8)<nntpserver>标签
邮件新闻配置,略
(9)<mailstore> & <users-store> & <database-connections>标签
配置邮件及用户信息存储的位置,默认为文件管理,加密方式MD5,但也可以通过数据库进行存储。
4. 运行
James可以通过bin目录下的run.bat直接运行,也可以以服务形式运行。如果以服务模式运行的话,需要通过wrapper工具(提供了),配置可默认。
Wrapper.exe -i ../conf/wrapper.conf 安装为服务
Wrapper.exe -r ../conf/wrapper.conf 删除服务
安装完服务以后,打开win service管理,调整为automic就能够开机启动了