一. James简介
Java Apache邮件服务器一般是指Apache组织开发的James,它是一个轻便的、安全的100%纯Java实现的邮件服务器。不仅如此James还可以提供更多的功能,感谢James给我们提供了插件化协议架构和mailet底层构造,它可以让我们利用web服务器的servlets处理邮件。Email服务到处都是,开始是DARPA(国防部高级研究计划局)的一个计划并最终发展为Internet,但是James成为了打破这一传统规则的第一个应用。
The Java Apache 企业邮件服务器(a.k.a. Apache James)是一个100%用Java实现的SMTP和POP3邮件服务器,同时,他还实现了NNTP新闻服务器的功能。James被设计成一个完整的、可移植的企业邮件引擎解决方案,他完全基于目前可用的开放性协议。James还是一个邮件应用平台。Apache组织提供了一套Java API-mailet API,利用mailet API,可以根据自己的需要用Java语言编写代码来对邮件进行个性化的处理。mailet可以生成一个自动回复,更新数据库,阻止垃圾邮件,建立消息档案,或者任何我们能想像的到的功能。与mailet密切相关的是消息适配器(matcher),一个消息适配器可以判断mailet是否要对服务器中的一个邮件进行处理。
James项目提供了Mailet API和一个邮件应用平台API的实现。他建立在Apache Avalon 应用框架(关于Avalon -http://avalon.apache.org/)的基础之上。
二、 James组成
James是一个支持多种协议的消息处理和存储引擎,目前由以下几个部分组成:
1. 两个邮件服务器(SMTP和POP3)
2. 一个远程管理服务器
3. 一个NNTP服务器
4. 一个支持Mailet API的邮件处理引擎
5. 一个文件系统消息存储机制和一个关系型数据库消息存储机制接口
6. 文件系统用户记录存储机制和一个试用的LDAP目录存储接口
7. 支持POP3和远程管理的TLS(SSL)连接
8. 支持SMTP认证
三、James的设计目标
James被设计为实现几个确定的目标。比如它完全使用Java开发以便适应最大的轻便行;它提供了很多安全特性用于保护服务器的运行环境安全还提供了安全服务。James是多线程的,它使用了很多Avalon架构提供的功能。
James提供了完善的服务,包括一个完全可以运行的Email服务器。这些服务主要是有Macther和MailetAPI实现的,这两个API提供了Email检查和处理功能。James支持标准的email协议(SMTP,POP3,IMAP),另外还提供了一些附加功能,它使用了松散耦合的插件设计方式使消息框架从协议中抽象出来。这种设计方式非常有用,你可以把James当作一个通常的消息服务器或者为即时消息传输提供支持。
James一个更重要的设计目标是提出了mailet概念,mailet提供了一个开发邮件应用程序的完整生命周期。当然你也可以在这里使用其他MTA(邮件传输代理),比如SendMail,要这样作的话你需要提供一个可调用的程序然后将数据传送给它来完成工作,不过,James提供了一套更简单、通用的API来完成这些工作。下面让我们来更进一步的了解Matcher和MailetAPI。
四、James的安装与配置
1. 准备环境
1) 到Apache官网(http://james.apache.org/)上下载最新版本的James,我下载的是apache-james-2.3.2.zip。
2) 到oracle官网上下载最新版的jdk,下载地址是:(http://java.sun.com/javase/downloads/index.jsp)。
3) 将下载好的jdk安装,并解压下载好的apache-james-2.3.2.zip。
2. 系统环境变量的配置
1) 新建系统环境变量JAVA_HOME = C:\Program Files\Java\jdk1.6.0_25。
2) 新建系统环境变量 PATH = %JAVA_HOME%\bin;
3) 新建系统环境变量 CLASSPATH = %JAVA_HOME%\lib;,;
3. 启动james
1) 启动方式 \james-2.3.2\bin\run.bat
2) 启动成功后的界面 如图1.0
图1.0 james运行界面
3) 关闭的时候可以采用 ctrl + C
4. james 系统环境配置
1) James的三种数据存储方式
a) File 以文件方式储存
b) Db 以数据库
c) Dbfile 消息头用数据库方式存放,把消息体用文件方式存放
2) 找到james配置文件\james-2.3.2\apps\james\SAR-INF\config.xml(如果没有这个文件请先运行james程序)
3) 修改James Server 主机名称默认的是localhost
a) 原配置
<postmaster>Postmaster@localhost</postmaster>
<servernames autodetect="true" autodetectIP="true">
<servername>localhost</servername>
</servernames>
b) 新配置
<postmaster>Postmaster@mail.com</postmaster>
<servernames autodetect="true" autodetectIP="true">
<servername>mail.com</servername>
</servernames>
c) 参数说明
Autodetect :如果该属性为true 则采用自己的主机名和用户明确指定的服务器名称。否则只采用用户指定的服务器名称。
autodetectIP :如果该属性为true ,服务器允许为每个servername添加ip地址
4) 添加DNS Server:(配置域名服务器,默认的是127.0.0.1)
a) 原配置
<dnsserver>
<servers>
</servers>
<autodiscover>true</autodiscover>
<authoritative>false</authoritative> <maxcachesize>50000</maxcachesize>
</dnsserver>
b) 新配置
<dnsserver>
<servers>
<server>127.0.0.1</server>
</servers>
<autodiscover>true</autodiscover>
<authoritative>false</authoritative>
</dnsserver>
5) 采用SMTP认真方式
a)注释掉(或删除掉):
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
b)开启SMTP Server 身份验证
<smtpserver enabled="true">
……
<authRequired>true</authRequired>
……
</smtpserver>
6)修改用户名和密码
a) 原配置
<remotemanager enabled="true">
……
<account login="root" password="root"/>
……
</remotemanager>
b) 新配置
<remotemanager enabled="true">
……
<account login="username" password="123456"/>
……
</remotemanager>
7)修改邮件信息存储位置
解释:
spool里面是存放的正在处理的信件,而inbox里面是存放的已发送邮件。
数据库描述文件放在:\james-2.1.3\apps\james\conf\sqlresources.xml
下面以MySql为例配置James
a) 用户信息存储位置修改
1. 注释掉
<users-store>
<!--
<repository name="LocalUsers"
class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>
-->
</users-store>
2. 取消注释部分
<users-store>
<repository name="LocalUsers"
class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
</users-store>
b) 日志信息存到数据库中
1. 原配置
<processor name="error">
<mailet match="All" class="ToRepository">
<repositoryPath> file://var/mail/error/</repositoryPath>
<!--
<repositoryPath> db://maildb/deadletter/error </repositoryPath>
-->
</mailet>
</processor>
*******************************************************
<spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>
<!--
<spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
-->
2. 新配置
<processor name="error">
<mailet match="All" class="ToRepository">
<!--
<repositoryPath> file://var/mail/error/</repositoryPath>
-->
<repositoryPath> db://maildb/deadletter/error </repositoryPath>
</mailet>
</processor>
*******************************************************
<!--
<spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>
-->
<spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
c) 配置正在处理的邮件信息到数据库
1. 原配置
<mailet match="All" class="RemoteDelivery">
<outgoing> file://var/mail/outgoing/ </outgoing>
<!--
<outgoing> db://maildb/spool/outgoing </outgoing>
-->
……
</mailet>
2. 新配置(去掉数据库的注释)
<mailet match="All" class="RemoteDelivery">
<!--
<outgoing> file://var/mail/outgoing/ </outgoing>
-->
<outgoing> db://maildb/spool/outgoing </outgoing>
……
</mailet>
d) 配置数据库连接(不要忘了将数据库驱动添加到james-2.3.2\lib包下面)
取消下面的注释(要现在数据库中新建一个mail数据库)
1. 原配置
<database-connections>
<!--
<data-source name="maildb"
class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail?autoReconnect=true</dburl>
<user>username</user>
<password>password</password>
<max>20</max>
</data-source>
-->
</database-connections>
2. 新配置
<database-connections>
<data-source name="maildb"
class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail?autoReconnect=true</dburl>
<user>username</user><!—自己数据库的用户名-->
<password>password</password><!—自己数据库的密码-->
<max>20</max>
</data-source>
</database-connections>
e) 配置收件箱到数据库
取消这段代码的注释
<inboxRepository>
<repository destinationURL="db://maildb/inbox/" type="MAIL"/>
</inboxRepository>
注释掉
<!--
<inboxRepository>
<repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>
-->
5.添加用户信息
1. 在命令提示符中输入telnet localhost 4555 回车
注意:(在Windows 7下安装Telnet和Windows Server 2008略有不同,大家可以通过下面的操作方法实现。依次点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows 功能”进入Windows 功能设置对话框。找到并勾选“Telnet客户端”和“Telnet服务器”,最后“确定”稍等片刻即可完成安装。除此之外,我们也可通过该向导安装 “TFTP客户端”、“Internet 信息服务”等。)
其中localhost也可以换成IP,4555是端口号。登录时需要用户名和密码,开始默认的用户名和密码均为root。若登录成功,提示如下:
JAMES Remote Administration Tool 2.1
Please enter your login and password
Login id:
2. 此时输入root用户名,然后会出现:
Password:
3. 输入密码root
注意:在有些操作系统如Windows2000上,用户输入均不显示。
telnet命令列表:
help ---------------------------------------------显示帮助
Listusers ----------------------------------------列出目前存在的账户
Countusers -------------------------------------显示目前存在的账户的数量
addusers [用户名] [密码] -----------------------添加新用户
verify [用户名] ----------------------------------验证特定用户是否存在
deluser [用户名]---------------------------------删除已存在用户
setpassword [用户名] [密码] -------------------设置某一用户的密码
setalias [别名] [用户名] -----------------从本地将[别名]的所有邮件转寄[用户名]
unsetalias [别名] -------------------------------取消setalias设置
setforwarding [用户名] [email地址] ----将[用户名]的邮件转寄指定[email地址]
unsetforwarding [用户名] ----------------------取消setforwarding设置
user [资源]--------------------------------------变为另一用户的资源
shutdown--------------------------------------停止当前James邮件服务的JVM程序(对于James为后台服务时,用此命令很方便)
Quit ---------------------------------------------断开telnet连接
分享到:
相关推荐
james 邮件服务器 详细配置 关联数据库
本文将详细介绍如何进行Apache James邮件服务器的基础配置,使读者能够快速掌握并部署自己的邮件服务。 #### 配置前准备 在开始配置Apache James之前,需要完成以下准备工作: 1. **下载与安装James**: - 访问...
James 3.0.1 是一个开源的邮件服务器软件,基于Java技术构建,提供全面的邮件服务功能。本文将深入探讨如何配置 James 3.0.1,使其能够有效地运行并满足您的邮件服务需求。 首先,我们需要理解James的核心组件和...
1. **Apache James邮件服务器的安装与配置** - 下载Apache James最新版本的源码或二进制包。 - 配置James的配置文件(如`conf/james-server.xml`),包括端口号、用户数据库、存储设置等。 - 启动服务器,通常...
James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置
本篇将深入探讨如何配置Apache James邮件服务器。 首先,我们需要下载Apache James的源码。Apache James的源代码可以在其官方网站上获取,这使得用户可以根据自身需求进行定制和扩展。源码的使用对开发者尤其有利,...
### Apache James 邮件服务器配置详解 ...通过以上步骤,即可完成Apache James邮件服务器的基本配置,并实现内网间的邮件收发功能。此外,通过适当的网络配置,还可实现与外部邮件系统的互联互通。
Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入了解其工作原理,并可根据需求进行定制化开发。Apache James 2.3.2是该项目的某个稳定版本,提供了...
**James 3.0 邮件服务器及配置详解** James 3.0 是一个开源、免费的邮件服务器软件,它基于Java技术构建,提供SMTP、POP3和IMAP4等标准邮件服务。这款服务器软件适合小型企业和个人使用,具有高度可定制性和灵活性...
- **目的**:确保James邮件服务器能够正确运行,因为James基于Java开发。 - **步骤**: - 下载并安装最新版或兼容版本的JDK(建议至少Java 8及以上版本)。 - 配置`JAVA_HOME`环境变量,通常是在系统变量中新增`...
本讲解将聚焦于James邮件服务器的最新版本——3.0.4 beta,探讨如何配置它来实现内外网的邮件收发功能。James是一个开源的、基于Java的邮件传输代理,提供了邮件服务器的全面解决方案。 首先,让我们理解邮件服务器...
4. Apache James 2.3.1,这是我们要配置的邮件服务器软件。 5. Eclipse 3.4 for J2EE Developers,虽然不是必需的,但可以方便地进行开发和调试。 以下是配置Apache James的基本步骤: 1. 安装JDK并设置环境变量。...
总的来说,James 提供了一个功能丰富的邮件服务器解决方案,通过手动配置和调整,可以满足不同场景的需求。在实际部署时,还需要考虑防火墙设置、安全性以及与其他系统的集成等复杂因素。对于更深入的了解和使用,...
**James邮件服务器** James邮件服务器是Apache软件基金会开发的一个开源邮件服务器项目,它是一个完全用Java编写的网络应用程序。这个服务器提供了多种邮件服务功能,包括SMTP(简单邮件传输协议)、POP3(邮局协议...
apache james(邮件服务器)配置.经过配置可以向163、qq等邮箱发送邮件
刚进个小公司就让我搭建个服务器,研究了一个星期,总算是搞定了,网上找了很多资料,看了很久也研究了很久,最后总结了下...搭建成功...收发邮件都没问题...不过如果是收邮件的话必须要有注册的域名,也就是公网的域名才...
**James邮件服务器详解** James邮件服务器是一款开源的、基于Java技术构建的邮件传输代理服务器,其版本号为2.3.2。这个软件提供了一整套邮件服务解决方案,包括SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和...
1.集成mysql,需要配置数据库2.配置了系统退信:https://blog.csdn.net/u011974797/article/details/1347181363.修改配置james\apps\james\SAR-INF\config.xml4.windows启动james\bin\run.bat