用Java做邮件服务器_如何搭建邮件服务器
用Java做邮件服务器由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“如何搭建邮件服务器”。
用Java做邮件服务器
【摘要】 Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。Java始于网络,服务于网络,用Java做的网络程序,随处可见,这里我就不多做介绍了,下面给大家介绍一种用Java实现的GUI界面的邮件收发系统。
本文是一篇入门级教程,主要讲了1)利用Eclipse这个优秀的Java IDE中创建应用程序界面;2)利用J2EE的API构建自己的邮件收发系统。要求您对JavaMail和JavaBeans和GUI的一些相关知识。
所用到的工具包括Eclipse(是一个JAVA IDE)、j2ee.jar(里面包含了所用的关于mail的API)、jigloo312.zip(提供一个用户可定制GUI的JAVAAPI可到http://cloudgarden.com/下载)
【简介】在介绍本文之前,需要先简介一下邮件服务的一些基本概念,以期更好的理解本文。在一个目前常用的邮件系统中,收发邮件功能的实现是通过不同的协议实现的,收邮件一般采用POP(PostOffice Protocol)协议,即邮局协议,目前所用的版本是3,所以人们通常称之为POP3。该协议定义了接收邮件的机制,并规定每个用户只能有一个邮箱的支持。占用端口一般为25;发邮件一般采用SMTP(Simple Mail Transfer Protocol)协议,即简单邮件传输协议,它定义了发送电子邮件的机制,通过它程序将和您的公司或因特网服务供应商的(InternetService Provider's,ISP's)SMTP 服务器通信。SMTP 服务器可将消息中转至接收方 SMTP 服务器,以便最终让用户经由 POP 或IMAP 获得。占用端口一般为110;通过程序实现这两个协议,我们就可以构建自己企业的邮件收发系统。
【关键字】JavaMail J2EE GUI Eclipse POP
SMTP
还在为没有一个统一,兼容于任何平台的邮件收发系统而着急吗?不用急,这篇文章可以给您敲开一扇开发适合自己企业业务环境的邮件收发系统的大门!
一,开发准备
从“)){
this.contentType.setText(”文本“);
InputStreamis = meagePart.getInputStream();
BufferedReaderreader = new BufferedReader(newInputStreamReader(is));
StringthisLine = reader.readLine();
StringBufferlineBuffer = new StringBuffer();
while(thisLine!= null)
{
System.out.println(thisLine);
lineBuffer.append(thisLine+”n");
thisLine= reader.readLine();
}
bodyField.setText(lineBuffer.toString());
}
timeLabel.setText(String.valueOf(newDate()));
}catch(Exception ex){
ex.printStackTrace();
}
}
四,测试
笔者的环境是WindowsXP sp2+Eclipse3.0.0+jdk1.5.0,所用帐户是chaoyanglee@163.com和imchaoyang@163.com,这两个帐户无论在接收还是发送都能正确无误的执行。
五,参考
下面介绍一下本文中所用到的重要的API: ·Javax.mail.Seion:Seion 类定义了一个基本邮件会话(seion),是Java Mail API最高层入口类。所有其它类都是经由这个seion 才得以生效。Seion 对象用Java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其它信息。
·Javax.mail.Meage:一旦获得 Seion 对象,就可以继续创建要发送的消息。这由 Meage 类来完成。因为 Meage 是个抽象类,必需用一个子类,多数情况下为 Javax.mail.internet.MimeMeage。MimeMeage 是个能理解 MIME 类型和头的电子邮件消息,正如不同 RFC 中所定义的。虽然在某些头部域非 ASCII 字符也能被译码,但 Meage 头只能被限制为用US-ASCII 字符。
·Javax.mail.Addre:一旦您创建了 Seion 和 Meage,并将内容填入消息后,就可以用 Addre 确定信件地址了。和Meage 一样,Addre 也是个抽象类。您用的是Javax.mail.internet.InternetAddre 类。
·Javax.mail.Authenticator:与 Java.net 类一样,JavaMailAPI 也可以利用 Authenticator 通过用户名和密码访问受保护的资源。对于JavaMail API 来说,这些资源就是邮件服务器。JavaMail Authenticator 在 Javax.mail 包中,而且它和Java.net 中同名的类 Authenticator 不同。两者并不共享同一个 Authenticator,因为JavaMailAPI 用于 Java 1.1,它没有Java.net 类别。要使用 Authenticator,先创建一个抽象类的子类,并从 getPawordAuthentication()方法中返回 PawordAuthentication 实例。创建完成后,您必需向seion 注册 Authenticator。然后,在需要认证的时候,就会通知 Authenticator。您可以弹出窗口,也可以从配置文件中(虽然没有加密是不安全的)读取用户名和密码,将它们作为 PawordAuthentication 对象返回给调用程序。
·Javax.mail.Transport:消息发送的最后一部分是使用 Transport 类。这个类用协议指定的语言发送消息(通常是 SMTP)。它是抽象类,它的工作方式与 Seion 有些类似。仅调用静态send()方法,就能使用类的 缺省 版本:Transport.send(meage);或者,读者也可以从针对自己的协议的会话中获得一个特定的实例,传递用户名和密码(如果不必要就不传),发送消息,然后关闭连接。
·Javax.mail.Store:Store类实现特定邮件协议上的读、写、监视、查找等操作。通过Javax.mail.Store类可以访问Javax.mail.Folder类。
·Javax.mail.Folder:Folder类用于分级组织邮件,并提供照Javax.mail.Meage格式访问email的能力。