企业级邮件服务器Apache James介绍(1)| +---bin | | \---lib | +---conf | +---docs | | +---images | | \---stylesheets | +---ext | +---lib | +---logs \---javamail-1.3 +---demo | +---client | +---servlet | \---webapp +---docs | \---javadocs \---lib =============================================================================== 我假设你已经安装了独立于James文件的Java 平台的1.4版本。James配置文件声称在使用Java 1.3.0时已经发现了一些问题,所以你应该使用1.3.1或更高的版本。原则上来说,James应该可以在与Java 1.4 VM兼容的任何平台上很好的运转。 我们的第一步是启动James, 因为只有服务器被运行过一次以后配置文件才会被释放出来。你会在 james-2.1.2/bin目录下发现一个运行脚本 (根据你的操作系统使用run.bat 或 run.sh) 。当你运行这个脚本后,输出应该和列表 2相似 (这是在Windows系统下的输出样本): 列表2. James运行时的控制台输出 ================================================================================ Using PHOENIX_HOME: D:\James\james-2.1.2 Using PHOENIX_TMPDIR: D:\James\james-2.1.2\temp Using JAVA_HOME: c:\programming\java14 Phoenix 4.0.1 James 2.1.2 Remote Manager Service started plain:4555 POP3 Service started plain:110 SMTP Service started plain:25 NNTP Service started plain:119 Fetch POP Disabled ================================================================================ 你可以按 Ctrl+C 退出程序, Phoenix 容器会发出一个消息告诉你它正在退出。严格的讲,正确的退出James的方法是使用远程管理界面。我在我的开发环境里已经用过Ctrl+C,没有发现负面的影响。但无论如何,在开发环境里总是应该使用shutdown命令。 在第一次关闭了James之后,你就会在james-2.1-2/apps/james/SAR-INF文件夹下面发现config.xml文件,你应该认真看一下这个文件。通常你应该做的第一件事是改变管理员账号,默认设置为root,密码是root。由于是进行开发,所以我们不管它,但很明显在生产系统中保留这种配置是很不明智的。接下来要改变的通常是DNS服务器的地址,如果James是完全作为一个e-mail服务器运转的话,这是非常必要的。既然我们所有的测试都是在本机上进行的,我们也不去管它。 但你应该意识到这是个很重要的设置。虽然理解配置文件很重要,但对于我们的开发目标来说,其余的默认设置都没有问题。你可以在 james-2.1.2/docs目录下得到更详细的信息。 让我们在开始工作之前先添加几个用户。首先用命令“telnet localhost 4555” telnet到本机的4555端口。可以用root这个用户名和密码登录,登录成功之后,我们就可以添加用户了。“adduser” 命令需要用户名和密码两个参数。在这个项目中我们会添加用户名为red、 green和 blue的三个用户,密码都和用户名相同。 (我相信你知道这在创建真实用户的时候不是一个好主意,但这样很容易配置我们的测试用例。) 添加用户之后,你可以用”listusers“ 命令验证输入是否正确,然后键入”quit“命令退出远程管理。整个会话如列表3所示,红色的文本表示你自己键入的命令。(可惜看不到红色了,:( ) 列表3. 用远程管理添加用户 =============================================================================== JAMES Remote Administration Tool 2.1.2 Please enter your login and password Login id: root Password: root Welcome root. HELP for a list of commands adduser red red User red added adduser green green User green added adduser blue blue User blue added listusers Existing accounts 3 user: blue user: green user: red quit Bye ================================================================================ 现在我们和运行起来的James服务器一起大干一场了。如你所见,James的部署和用远程管理进行配置是相当简单的。很明显,如果想让邮件服务器安全的话你将需要改变几个配置参数,但那并不是一个很复杂的过程。 使用邮件服务器真正关键的是在多用户多服务环境中正确的配置DNS。这超出了本文的讨论范围,但它也不是很复杂的过程。 用JavaMail测试James 为了确保我们的安装是成功的, 我们将很快的编写能够发送消息和显示收件夹中的内容列表的两个类,用来模拟典型的e-mail客户端的基本功能。we'll write a quick pair of classes that will send messages and list inbox content, simulating the base functionality of a typical e-mail client. 我们用两个类是因为 MailClient 类,如列表4所示,能够重用以测试更复杂的行为,我们在开发自己的James应用程序时(本系列的第二篇文章)将会重用这个类。 列表4. MailClient: 模拟一个e-mail 客户端的基本功能 =========================================== import java.io.*; import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailClient extends Authenticator { public static final int SHOW_MESSAGES = 1; public static final int CLEAR_MESSAGES = 2; public static final int SHOW_AND_CLEAR = SHOW_MESSAGES + CLEAR_MESSAGES; protected String from; protected Session session; protected PasswordAuthentication authentication; public MailClient(String user, String host) { this(user, host, false); } public MailClient(String user, String host, boolean debug) { from = user + '@' + host; authentication = new PasswordAuthentication(user, user); Properties props = new Properties(); props.put("mail.user", user); props.put("mail.host", host); props.put("mail.debug", debug ? "true" : "false"); props.put("mail.store.protocol", "pop3"); props.put("mail.transport.protocol", "smtp"); 上一篇:如何用Apache James把E-mail从内网(内部局域网)发到外网(如263.net,hotmail.com) 下一篇:用apache james做简单的垃圾邮件过滤网关 更多相关文章
|
推荐文章
精彩文章
|