原创地址:http://blog.csdn.net/ansha886/article/details/7085758
【此贴作为参考是目前看到最为清晰的】
一、简介
Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择在文件、数据库或其他介质中保存。
本文将以James2.3.2版本作为介绍
二、安装与配置
James的安装配置过程非常简单。
第一步:安装JDK
请使用JDK1.3以上版本(推荐使用JDK1.5),假设安装在c:/jdk1.5。
第二步:下载James,并解压
可以到Apache网站上下载Jamesjames-2.3.2,下载将得到一个压缩文件james-2.3.2.zip,大小为7.30M,将此包解压到c:/james。
下载地址:官方地址:http://james.apache.org/
下载地址:http://mirror.utdlug.org/apache/james/server/binaries/james-binary-2.3.1.zip
第三步:直接运行或需要配置JAVA_HOME
这时,可以尝试直接双击c:/james/bin/run.bat,若启动无误,将提示如下:
Using PHOENIX_HOME: C:/james
Using PHOENIX_TMPDIR: C:/james/temp
Using JAVA_HOME:
Phoenix 4.0.1
James 2.3.2
Remote Manager Service started plain:4555
POP3 Service started plain:110
SMTP Service started plain:25
NNTP Service Disabled
Fetch POP Disabled
也有可能启动不了,并报JAVA_HOME找不到,这时,需要指定JAVA_HOME,比较简单的方法是在c:/james/bin/run.bat中指定JAVA_HOME,修改后的run.bat如下:
……
rem
rem Determine if JAVA_HOME is set and if so then use it
rem
set JAVA_HOME= c:/jdk1.5
if not "%JAVA_HOME%"=="" goto found_java
……
修改完后再运行run.bat,应该就可以正常启动了
第四步:服务器配置
首先找出专用服务器的名字,假设叫weimao。
然后打开文件c:/james/apps/james/SAR-INF/config.xml。
在config.xml文件中,找到<postmaster>Postmaster@localhost</postmaster>,把此项改为<postmaster>Postmaster@weimao</postmaster>,同理,找到<servername>localhost</servername>,把此项改为<servername>weimao</servername>。其实,改这两项就是把默认的localhost改为机器名,这样做是为了让其它机器也能访问邮件系统,当然,前提是在局域网上没有与服务器重名的机器。
帐号管理
James的账号管理是通过telnet完成的,登录命令为:telnet localhost 4555
登录时需要用户名和密码,初始的用户名和密码均为root。若登录成功,提示如下:
JAMES Remote Administration Tool 2.1
Please enter your login and password
Login id:
Password:
Welcome root. HELP for a list of commands
需要注意的是,所有敲入的命令都不显示在屏幕上。
输入help,将出现命令的帮助,信息如下:
JAMES Remote Administration Tool 2.1
Please enter your login and password
Login id:
Password:
Welcome root. HELP for a list of commands
Currently implemented commands:
help display this help
listusers display existing accounts
countusers display the number of existing accounts
adduser [username] [password] add a new user
verify [username] verify if specified user exist
deluser [username] delete existing user
setpassword [username] [password] sets a user's password
setalias [alias] [user] locally forwards all email for 'alias' t
o 'user'
unsetalias [alias] unsets an alias
setforwarding [username] [emailaddress] forwards a user's email to another email
address
unsetforwarding [username] removes a forward
user [repositoryname] change to another user repository
shutdown kills the current JVM (convenient when J
ames is run as a daemon)
quit close connection
常用的命令有listusers、countusers、adduser、deluser、setpassword等。
其中添加用户为adduser,例如:adduser holen 123456。
通过这个后台管理界面,管理员就可以实现账号管理及其他相应的管理功能。
接下来可以用客户端连接发送测试邮件了,我采用的formail。
打开formail点击新建一个帐号。比如我刚才添加了一个帐号weimao,密码为123456如何在Outlook中配置呢。如何在formail中配置呢?
首先,根据用户名,可以得出该用户邮箱地址为weimao@weimao ,然后在输入POP3和SMTP服务器时,直接使用服务器机器名weimao即可。
接下来最终要的一个环节。就是我们搭建服务器是要给外网的邮箱发送的。
下面讲如何配置发送:
打开../james/apps/james/SAR-INF/config.xml文件,
1. 找到<servernames autodetect="true" autodetectIP="true"> 设成 <servernames
autodetect="false" autodetectIP="false"> autodetct设为true会自动侦测你的主机名,
设成false会用你指定的server name. autodetectIP设为true会为你的servername加上ip.
2. 设置servername 将默认的为localhost改成你的server名字 如weimao.net, 然后打开
C:/WINDOWS/system32/drivers/etc/hosts文件,添加 127.0.0.1 weimao.net
3. 注释掉
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor>
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
4. 配置DNS Server
在cmd中用ipconfig /all 命令查看你的dns server ip
DNS Servers . . . . . . . . . . . : 202.96.209.6
192.168.1.1
添加如下:
<dnsserver>
<servers>
<server>202.96.209.6</server>
<server>192.168.1.1</server>
同时设置autodiscover为false
5.重启server 就ok了。
本人发送给126,163,QQ都没问题,hotmail和sina会当做junk mail拒收.sina会去反域名解析,如果你有域名的话应该没问题的.
如果有域名的话直接配置一下MX就可以了。剩下的就是我们采用程序来进行发送,在这里我就不贴代码了,网上一大推。大家自己去看看吧。
有什么问题可以直接邮件我:licheng0601@126.com<注:此处为原著email>