纯java邮件服务器james配置说明.docx
- 文档编号:9178823
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:24
- 大小:25.47KB
纯java邮件服务器james配置说明.docx
《纯java邮件服务器james配置说明.docx》由会员分享,可在线阅读,更多相关《纯java邮件服务器james配置说明.docx(24页珍藏版)》请在冰豆网上搜索。
纯java邮件服务器james配置说明
ApacheJames简称James,是JavaApacheMailEnterpriseServer的缩写。
James是100%基于Java的电子邮件服务器。
它是一种独立的邮件服务器,并提供了一个完整的电子邮件解决方案,用来收、发电子邮件。
本文不赘述James服务器的参数细节,这个以后有机会再详细讨论,这里先从服务器搭建开始,用搭建的服务器收、发电子邮件来熟悉一下ApacheJames。
本人也是新手,希望能得到各位高手的指点,使大家能悟到进阶的方向。
开始之前,先声明一下本文操作的系统环境:
1.JDK6u10b
2.JMailAPIv1.4.2
3.JAFAPIv1.1(JavaBeanActivationFramework)
4.ApacheJames2.3.1
5.Eclipse3.4forJ2EEDevelopers
6.Windows2000Serversp4
1。
请下载安装JDK,并设置好其环境变量:
JAVA_HOME=……、PATH=……、CLASSPATH=……Eclipse3.4是目前的最新版本,可以从http:
//www.eclipse.org/下载。
2。
请下载JMailAPI、JAFAPI,可以在找到他们,找不到也不要紧,本文附件示例代码免费提供一份(^_^)。
3。
ApacheJames的官方网站为:
http:
//james.apache.org/,当前Server 的最新版为2.3.1版.安装非常简单,下载后得到james-binary-2.3.1.zip文件,解压后即可。
这里假设解压到D盘(D:
\james-2.3.1),目录结构如下:
D:
\james-2.3.1
|---apps
|---bin
|
…………
4。
启动James服务器
双击或在命令行下执行D:
\james-2.3.1\bin目录下的run.bat文件,即可启动James服务器。
启动后能在控制台看到如下信息,说明启动成功:
Java代码
1.Using PHOENIX_HOME:
D:
\james-2.3.1
2.Using PHOENIX_TMPDIR:
D:
\james-2.3.1\temp
3.Using JAVA_HOME:
D:
\Java\jdk1.6.0_10
4.
5.Phoenix 4.2
6.
7.James Mail Server 2.3.1
8.Remote Manager Service started plain:
4555
9.POP3 Service started plain:
110
10.SMTP Service started plain:
25
11.NNTP Service started plain:
119
12.FetchMail Disabled
UsingPHOENIX_HOME:
D:
\james-2.3.1
UsingPHOENIX_TMPDIR:
D:
\james-2.3.1\temp
UsingJAVA_HOME:
D:
\Java\jdk1.6.0_10
Phoenix4.2
JamesMailServer2.3.1
RemoteManagerServicestartedplain:
4555
POP3Servicestartedplain:
110
SMTPServicestartedplain:
25
NNTPServicestartedplain:
119
FetchMailDisabled
要关闭James服务,请使用Ctrl+C
说明:
启动前请确保您的JDK环境变量如JAVA_HOME等已经设置好;James启动时,其SMTP服务默认在25端口启动,POP3服务默认在110端口启动,NNTP服务默认在119端口启动,请确保这些端口未被占用。
比如本系统下就已经安装了Microsoft的SMTP服务,造成James无法启动,解决方法为:
开始--->设置--->控制面板--->管理工具--->服务,打开后找到“SimpleMailTransportProtocol(SMTP)”服务项,关闭即可。
5。
配置服务
服务器启动后会在本机配置一个默认的服务,这可以用来在本机上本服务器范围内收发邮件,但是邮件发不到163等外网邮箱。
我们这里关注的重点就是配置一个能发到外网如163这样的邮箱的邮件,这样才有价值。
不过由于本人是在本机上测试,一时不能获取公司的域名参数,无法测试接收外网邮箱(如163)的邮件,见晾,不过做法都是一样的,至少我们可以向外网邮箱发送邮件,局域网内可以收、发邮件。
打开D:
\james-2.3.1\apps\james\SAR-INF下的config.xml文件,初次启动James之前,不会有这个文件,只有当James服务启动一次之后才自动构件该文件。
找到
Java代码
1.……
2.
3.……
4.
5.
6.
7.……
……
……
……
把localhost该成你自己想要的邮箱域名, 把自动探测IP属性设置为“false”这里假设改成 如果开了一个帐号zph,那么他的邮件地址就是zph@(^_^)修改结果如下:
Xml代码
1.……
2.
3.……
4.
5.
6.
7.……
……
……
……
找到
Xml代码
1.
2.
3.
relaying denied
4.
relayingdenied
将其注释,结果如下:
Xml代码
1.
--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
2.
3.
relaying denied
4.
--mailetmatch="RemoteAddrNotInNetwork=127.0.0.1"class="ToProcessor">
relayingdenied
找到下面元素,去掉其注释
Xml代码
1.
这样邮箱访问需要帐号验证,你不希望别人用你的帐号收发消息吧……^_^
如此,James服务配置已经完成。
6。
创建邮件帐号
创建邮件帐号后,就可以用来收发邮件了。
James的账号管理是通过基于Telnet客户机的远程管理器,这点颇为不爽,尤其是我的操作系统下的命令行控制台是不显示telnet命令输入字符的,经常出错。
现在进入命令行控制台,在telnetlocalhsot4555进入James管理器,操作如下:
C代码
1.C:
\Documents and Settings\db2admin>telnet localhost 4555
C:
\DocumentsandSettings\db2admin>telnetlocalhost4555
将进入
C代码
1.JAMES Remote Administration Tool 2.3.1 Please enter your login and password Login id:
JAMESRemoteAdministrationTool2.3.1PleaseenteryourloginandpasswordLoginid:
默认的登陆id为root密码也为root,登陆成功后结果如下:
C代码
1.JAMES Remote Administration Tool 2.3.1
2.Please enter your login and password
3.Login id:
4.Password:
5.Welcome root. HELP for a list of commands
JAMESRemoteAdministrationTool2.3.1
Pleaseenteryourloginandpassword
Loginid:
Password:
Welcomeroot.HELPforalistofcommands
创建新用户的命令是:
adduserusernamepassword
这里创建了两个账户来作为演示使用:
zhaipuhong/zhangpuhong ; zph/zph
说明:
你可以输入help来获取命令帮助
C代码
1.help display this help 显示帮助信息
2.listusers display existing accounts 显示现有账户
3.countusers display the number of existing accounts 显示现有账户数量
4.adduser [username] [password] add a new user 添加一个新用户
5.verify [username] verify if specified user exist 核实指定用户是否存在
6.deluser [username] delete existing user 删除存在的用户
7.setpassword [username] [password] sets a user's password 设置用户密码
8.setalias [user] [alias] locally forwards all email for 'user' to 'alias' 设置邮箱别名
9.showalias [username] shows a user's current email alias 显示别名
10.unsetalias [user] unsets an alias for 'user' 删除用户别名
11.setforwarding [username] [emailaddress] forwards a user's email to another email address 转发用户的电子邮件地址到另一个电子邮件地址
12.showforwarding [username] shows a user's current email forwarding 显示用户的当前邮件转发
13.unsetforwarding [username] emoves a forward 删除转发
14.user [repositoryname] change to another user repository 改变另一个用户库
15.shutdown kills the current JVM (convenient when James is run as a daemon)关闭当前的服务
16.quit close connection 关闭连接
helpdisplaythishelp显示帮助信息
listusersdisplayexistingaccounts显示现有账户
countusersdisplaythenumberofexistingaccounts显示现有账户数量
adduser[username][password]addanewuser添加一个新用户
verify[username]verifyifspecifieduserexist核实指定用户是否存在
deluser[username]deleteexistinguser删除存在的用户
setpassword[username][password]setsauser'spassword设置用户密码
setalias[user][alias]locallyforwardsallemailfor'user'to'alias'设置邮箱别名
showalias[username]showsauser'scurrentemailalias显示别名
unsetalias[user]unsetsanaliasfor'user'删除用户别名
setforwarding[username][emailaddress]forwardsauser'semailtoanotheremailaddress转发用户的电子邮件地址到另一个电子邮件地址
showforwarding[username]showsauser'scurrentemailforwarding显示用户的当前邮件转发
unsetforwarding[username]emovesaforward删除转发
user[repositoryname]changetoanotheruserrepository改变另一个用户库
shutdownkillsthecurrentJVM(convenientwhenJamesisrunasadaemon)关闭当前的服务
quitcloseconnection关闭连接
账号创建成功后,使用quit退出管理器。
现在我们可以开始部署我们的JMail应用了。
7。
用James收发邮件
现在我们来写两个简单的程序来体验一下如何使用James收发邮件。
请注意,示例程序是通用的。
关于如何用JMailAPI收发邮件,这里不详细介绍,如果还没有接触过请参考一下我之前的文章:
关于接受邮件部分,我们在代码中通过注释来描述。
另外我们来回忆一下上述步骤配置James服务器的参数:
1。
smtp服务器:
192.168.1.98或者localhost 192.168.1.98是我的局域网IP,由于我James服务就装在我的机器上,所以我可以用localhost
2。
两个邮件帐号:
zhaipuhong/zhaipuhong 对应邮箱地址:
zhaipuhong@
zph/zph 对应邮箱地址:
zph@
注意:
邮箱域名我们配置的是
示例程序:
Java代码
1.package com.zhaipuhong.j2ee.jmail;
2.
3.import java.io.IOException;
4.import java.util.Properties;
5.
6.import javax.mail.Authenticator;
7.import javax.mail.Folder;
8.import javax.mail.Message;
9.import javax.mail.MessagingException;
10.import javax.mail.PasswordAuthentication;
11.import javax.mail.Session;
12.import javax.mail.Store;
13.import javax.mail.Transport;
14.import javax.mail.internet.InternetAddress;
15.import javax.mail.internet.MimeMessage;
16.import javax.mail.internet.MimeUtility;
17.
18.public class HelloJMail {
19.
20. //发送邮件
21. public static void sendMail() {
22. //String host = "192.168.1.98"; // 指定的smtp服务器,本机的局域网IP
23. String host = "localhost"; // 本机smtp服务器
24. //String host = ""; // 163的smtp服务器
25. String from = "zhaipuhong@"; // 邮件发送人的邮件地址
26. String to = "zph@"; // 邮件接收人的邮件地址
27. final String username = "zhaipuhong"; //发件人的邮件帐户
28. final String password = "zhaipuhong"; //发件人的邮件密码
29.
30. // 创建Properties 对象
31. Properties props = System.getProperties();
32.
33. // 添加smtp服务器属性
34. props.put("mail.smtp.host", host);
35. props.put("mail.smtp.auth", "true");
36.
37. // 创建邮件会话
38. Session session = Session.getDefaultInstance(props, new Authenticator(){
39. @Override
40. public PasswordAuthentica
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 邮件 服务器 james 配置 说明