用邮件服务器软件CMailServer组建自己的邮件服务器

第一篇:用邮件服务器软件CMailServer组建自己的邮件服务器

       用邮件服务器软件CMailServer组建自己的邮件服务器

       CMailServer是一款最为简单易用的邮件服务器软件,这个软件以短小精焊、功能全面、设置简单著称,其支持邮件在线杀毒,能很好的和瑞星、诺顿等杀毒软件配合使用,轻松杀除邮件病毒。CMailServer还支持邮件过滤和IP过滤,有效的防止垃圾邮件。下面就为读者介绍用CMailServer打造基于局域网的邮件服务器。

       1、安装和设置CMailServer

       第一步:安装并运行CMailServer,如果你的机器安装了邮件检测类的防病毒软件就要把它关掉了,因为会引起端口的冲突SMTP用的是25端口POP用的是110端口。

       第二步:依次选择窗口菜单中的“工具”→“服务器设置”,打开“系统设置”对话框。在“服务”选项区域中选择“作为局域网邮件服务器”单选框,并选择“允许邮件代理”复选框。选择这个复选框主要是为了能使用OUTLOOK、FOXMAIL等软件在你的服务器上下载邮件和发送邮件。

       第三步:接着在“邮箱域名设置”的“单域名”文本框中输入你的域名,如“abc.com”,然后点击“确定”按钮。

       第四步:依次选择“工具”→“设置虚拟目录”,当程序提示成功设置虚拟目录后,就可在IE浏览器中输入“http://服务器IP地址/mail/index.asp”,就可以打开邮箱登录页面了。

       2、测试CMailServer

       第一步:在CMailServer的程序界面中依次选择“帐号”→“新建帐号”,在打开的对话框中新建一个帐号a123,其完整的邮箱名就是[email=“a123@abc.com]“a123@abc.com[/email]”。第二步:在Foxmail中依次选择窗口菜单中的“邮箱”→“新建邮箱帐户”,在打开对话框的“电子邮件地址”文本框中输入[email=“a123@abc.com]“a123@abc.com[/email]”,POP3服务器和SMTP服务器的地址均填写为服务器的IP地址,完成后,可以利用其它邮箱发送一封邮件,测试是否能够接收和发送邮件

第二篇:邮件服务器

       1、hMailServer hmailserver是一个免费的win下的邮件服务器,类似于国内的winmail的管理界面只是没有中文不过可以找到网上的中文包补丁,支持SMTP、POP3,IMAP 不内置Webmail但可以使用开源的各种web端来组合使用。可以使用邮件过滤黑白单灰名单,杀毒。后台数据在MSSQL或者MYSQL。其官网有Squirrel Mail的下载以及各种组件

       2、Extmail(江民杀毒用的就是这个http://mail.jiangmin.com)ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix, Amavisd-new, ClamAV, ExtMail 和ExtMan,Courier系列软件。是一个功能相对比较齐全的免费电子邮件系统。以下是其主要的特性列表: 支持SMTP/POP3/HTTP协议 支持SMTP认证及ESMTP 可支持大容量邮箱(大于1GB)高速Web界面访问邮箱 完整的Web管理后台 在线服务端病毒过滤 内建内容过滤 SMTP行为识别垃圾邮件 支持大量反垃圾邮件技术 图形化邮件日志分析 支持别名/多域/域管理员等 支持网络磁盘/POP3邮件 支持读/写HTML格式邮件 支持定制模板及多语言。邮件服务器

       3、Macallan Mail SolutionMacallan Mail Solution 是一款 POP3、IMAP、SMTP、HTTP(webMail)邮件服务器软件,它还包括了防垃圾邮件机制。MMS 免费邮件服务器(SMTP/POP3/IMAP/HTTP/NEWS/SSL/Tunnel)支持 Microsoft 系统下的客户端工作,Microsoft Outlook Express 或者 Microsoft Outlook。它可以同时管理管理内部或外部互联网的电子邮件。

       4、AfterLogic XMail ServerAfterLogic XMail Server是一款免费的邮件服务器,提供SMTP和POP3支持,多个虚拟邮件域名,多账号,垃圾邮件过滤等功能。

       5、ArGoSoft Mail Server FreeWindows下的全功能的邮件服务器,支持POP3/SMTP/FINGER,简单易用。

       6、eRisemail邮件服务器 基于Linux和MySQL的免费的邮件服务器。支持SMTP,SMTPS,POP3,POP3S,IMAP,IMAPS.支持邮件组。推荐Ubuntu MySQL5.0.支持Gnome Evolution, Mozila Thunderbird , Outlook Express, Microsoft Outlook

       7、iredmail 由 rhms 项目 更名而来。Red Hat(R)Enterprise Linux 和 CentOS 在操作系统安装好后使用的一套 shell 脚本,用于快速部署一套功能完善的邮件服务器解决方案。提供 SMTP,SMTPS 服务。提供 POP3,POP3S,IMAP,IMAPS 服务。可以使用 OutLook, Foxmail, Thunderbird 等邮件客户端收发邮件,并且可以选择是否使用加密传输以保证信息安全;邮件备份与监控机制。可以监控、备份单个用户收发的邮件,也可以对整个域的用户进行监控和备份。抵挡垃圾邮件使用 SPF 技术识别邮件来源,有效防止假冒邮件。使用 DKIM 签名和校验技术使用灰名单(greylist)技术, 黑、白名单技术spamtrap(垃圾邮件陷阱)机制。邮件收发频率控制。邮件收发总容量控制使用开源查杀毒引擎 ClamAV 提供病毒查杀服务保障邮件安全。提供基于 AJAX 技术的 Web Mail 程序,易于操作,性能优异,速度快

第三篇:企业邮件服务器软件

       企业邮件服务器软件选型前的N种构想

       我们都知道企业邮箱是树立统一的企业形象,加速企业信息化管理的重要一环。由于架设成本,运营维护等诸多因素的制约,使一定规模的企业在选择邮件系统服务的过程中徘徊不定。电子邮箱是肯定要用的,但是用什么样的邮件系统,依然成为企业采购邮箱软件的最大难题。难在哪里?本文抛砖引玉,一一分析。

       运营维护成本问题:其实运营维护成本,对 于大型集团企业,上市公司来讲应该是算不上什么问题。但这毕竟是小部分,更多的企业,为选择一款好的邮件系统,的确需要支付一笔可观的软件费用,还有硬件 配置,许多产品连软件升级,其它配套功能也是需额外收费的。除此之外,就是人力成本了。我国现在最稀缺又最重要的是什么?技术人才。企业搭建好邮件系统如 果要自行维护,还得找专业的技术人才,一年下来的薪资就不是小数,如若人员更换,新人学习等对企业又是一笔不小的投入。不过针对这一问题,大多邮件服务器 供应商都能提供专业的技术工员为企业维护,技术成熟维护成本也更为划算。海外通邮问题:随着中国海外出口贸易业务的扩展,中国企业的商务往来日益全球化,能够顺畅的跟海外发信,也是成为企业选择邮件服务时需要考虑的非常重要的问题。信息安全问题:由于国内互联网管理及相关政策还不够完善,因电子邮件在商业中的重量级应用,也带动了垃圾病毒邮件去企业的侵扰,帐号被盗、“邮箱模仿秀”等事故,造成的巨大资金损失和重要信息被泄露已屡见不鲜。

       邮件归档与备份问题:对于任何一个大企业来讲,邮件归档已经成为目前非常重要的电子邮件 产品需求之一。但是目前各大邮件服务器厂商所提供的邮件归档与备份功能操作起来相当繁锁且不完善,好不容易归档备份好了,如若遇到硬件更换或岩机问题,要 重新还原数据又成为让人头痛的一大难题。

       特殊功能定制问题:企业邮箱一般属于标准产品,目前一般的企业邮箱产品都可以满足企业用户的一般需求,但是对于一些特殊的企业用户,如何提供个性化定制,功能可定制的邮件产品依然是目前很多企业邮箱服务商所不能解决的现实问题。

       邮件迁移问题:从切换邮件产品或与其它办 公软件集成的角度,用户都希望邮箱软件服务商可以做到邮件的无缝切换,注意:什么是无缝切换,是指从电子邮件账户,到公共地址簿再到邮件列表,对应电子邮 件账户密码,电子邮件信件内容的全部数据迁移,至少从目前的邮件系统产品中,能够解决此问题的还为数不多。

       做为国内第一款自主研发的邮箱软件:U-Mail邮件服务器软件 专注于用户实际需求,在技术革新中不断提升产品性能和用户体验,为广大企业很好的解决了以上一系列问题。独有的全球收发保证,一键式备份还原,数千种监控 审核规则,标准无缝集成迁移技术,以及最强劲的反垃圾反病毒引擎;全方位保证企业信息安全畅邮,企业邮件服务器高效、稳定、安全的运行。此外,还设有独立 的二次开发团队,为有个性化定制需求的客户全程服务。并为客户提供专业的售后服务团队,资深专业的工程师一对一为企业信息维护护航。U-Mail邮件服务器软件为感谢广大用户的支持和信赖,成为首家实行一次性购买,终身免费升级免费使用的邮件系统服务商。

第四篇:用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/jigloo/index.html下载)

       【简介】在介绍本文之前,需要先简介一下邮件服务的一些基本概念,以期更好的理解本文。在一个目前常用的邮件系统中,收发邮件功能的实现是通过不同的协议实现的,收邮件一般采用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

       还在为没有一个统一,兼容于任何平台的邮件收发系统而着急吗?不用急,这篇文章可以给您敲开一扇开发适合自己企业业务环境的邮件收发系统的大门!

       一,开发准备

       从下载jigloo312.zip压缩包,将解压后的plugins和features两个文件夹的内容分别拷贝到eclipse包含的plusins和features文件夹里。

       在本地新建一个文件夹(如:d:javadevelop)做为java开发的工作区,然后,在桌面新建一个eclipse.exe的快捷方式,右键点击“属性”,在“目标”栏里输入D:eclipseeclipse.exe-vm“G:Javajdk1.5.0binjavaw.exe”-data “d:javadevelop”,以后你在eclipse创建的程序都在d:javadevelop这个目录下了。如果还有其他项目的开发,可以在重新创建一个文件夹和eclipse.exe的快捷方式,重新指定工作区,相当于又做了一个全新的Eclipse环境。

       二,环境搭建

       A.1 从桌面打开新建的eclipse快捷方式,新建一个java项目:

       输入项目名:javamail,然后Next->Finish。

       2,右键点击新建的“javamail”项目,选择“Properties”,选择“Java Build Path”,在“Library”里选择“Add External JARs”,将准备的j2ee.jar文件添加到里面,如图:

       好了,所有准备工作都做好了,下面开始开发。

       三,开始开发

       A, 发送邮件

       A.1 在javamail项目里新建一个Package名为“com.leeyoung.javamail.send”,然后新建一个“Swing main application”:

       “Next”->输入类名:SendMailGUI ->“Finish”。

       A.2利用可拖拽的可视化面板绘制一个发送邮件的GUI界面(界面功夫这里就不垒述了,后面有关界面的制作也都不作详细说明了,本文重点不在与此。有关GUI的知识请参见相关资料。):

       A.3 邮件能够发送成功,关键在于这个“发送”按钮的动作的编写。

       A.4 了实现发送的功能,我们新建一个java类:MailSender.java

       A.5 放着,备用。首先我们要做一个bean,取名为Mail,用来存储邮件的所有信息,之所以这样做,是为了将邮件的信息都封装到一个java类里,更容易管理,思路更明确,同时也是为了让读者比较容易明白这个功能应该怎样实现。在这个mail bean里我们设置了smtpServer、userName、password、from、to、subject、fileName、body以及popServer、popUser、popPassword几个变量,分别用来存储SMTP服务器地址、邮件的用户名、密码、从何而来要到哪去、邮件标题、附件的名字、正文以及POP服务器的地址、用户和其密码。在Eclipse里完成这个bean很简单:新建一个java类,定义上述变量(String smtpServer,userName,password „),然后选中这些变量,击右键->Source->Generate Getters and Setters „,Eclipse会自动生成这些变量的get/set方法。保存这个类,入正题,编写send的功能代码。

       A.6 逐步讲解MailSender.java:

       i.定义SMTP服务器上的相关信息:

       String smtpServer =sendMail.getSmtpServer();

       String to = sendMail.getTo();

       String from = sendMail.getFrom();

       String subject =sendMail.getSubject();

       String body = sendMail.getBody();

       StringfileName = fileName = sendMail.getFileName();

       ii,定义一个Properties对象,并填充它:

       Propertiesprops = System.getProperties();

       props.setProperty(“mail.smtp.host”,smtpServer);

       props.setProperty(“mail.smtp.port”,“25”);

       props.put(“mail.smtp.auth”,“true”);

       props.setProperty(“mail.smtp.user”, username);

       iii,创建一个Authenticator的子类CheckAuthenticator,并向Session中注册:

       CheckAuthenticator auth =new CheckAuthenticator();

       Session session =Session.getDefaultInstance(props, auth);

       iv,创建一个Message:

       Message msg = newMimeMessage(session);iiv,创建邮件正题,里面的if(!fileName.equals(“"))是做了一个是否包含附件的判断,如果没有,就只把正文做为Message的内容发送出去;如果有,就把附件和正文内容一并发送:

       try {

       BodyPart bp = newMimeBodyPart();

       Multipart mp = newMimeMultipart();

       bp.setText(body);//增加正文内容到bodypart

       mp.addBodyPart(bp);

       if(!fileName.equals(”“)){

       bp = newMimeBodyPart();

       FileDataSourcefileSource = new FileDataSource(fileName);

       bp.setDataHandler(newDataHandler(fileSource));

       bp.setFileName(fileSource.getName());

       mp.addBodyPart(bp);

       }

       msg.setContent(mp);

       } catch(Exception e){

       System.err.println(”增加邮件附件:“ fileName ”发生错误!“ e);

       }

       vii,发送

       Transport.send(msg);

       具体源代码(MailSender.java)如下: //MailSender.java /* * Created on2022-5-19 * * TODO To changethe template for this generated file go to * Window-PreferencesCode Style* Preferences-JavaCode Templates */

       public class MailSender {

       /**

       * @param smtpServer

       * @param to

       * @param from

       * @param subject

       * @param body

       */

       publicvoid send(Mail sendMail){

       String smtpServer = sendMail.getSmtpServer();

       String to = sendMail.getTo();

       String from = sendMail.getFrom();

       String subject = sendMail.getSubject();

       String body = sendMail.getBody();

       String fileName = fileName = sendMail.getFileName();

       try{

       Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

       //--Get a Properties object--

       Propertiesprops = System.getProperties();

       props.setProperty(”mail.smtp.host“,smtpServer);

       props.setProperty(”mail.smtp.port“,”25“);

       props.put(”mail.smtp.auth“,”true“);

       StringTokenizerst = new StringTokenizer(from, ”@“);

       String username = st.nextToken();

       props.setProperty(”mail.smtp.user“,username);

       CheckAuthenticator auth = new CheckAuthenticator();

       Session session = Session.getDefaultInstance(props, auth);

       } }

       //--Create a new message--

       Messagemsg = new MimeMessage(session);

       //--Set the FROM and TO fields--

       msg.setFrom(newInternetAddress(from));

       msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));

       msg.setSubject(subject);//下面不设邮件正文 msg.setText(body),msg.setSentDate(newDate());

       //Judge the mail include a affix,if have ,send it;if none ,send the mail body only;

       System.out.println(”开始增加邮件附件:“ fileName);

       try{

       BodyPart bp = new MimeBodyPart();

       Multipart mp = new MimeMultipart();

       bp.setText(body);//增加正文内容到bodypart

       mp.addBodyPart(bp);

       if(!fileName.equals(”“)){

       bp= new MimeBodyPart();

       FileDataSourcefileSource = new FileDataSource(fileName);

       bp.setDataHandler(newDataHandler(fileSource));

       bp.setFileName(fileSource.getName());

       mp.addBodyPart(bp);

       }

       msg.setContent(mp);

       }catch(Exception e){

       System.err.println(”增加邮件附件:“ fileName ”发生错误!“ e);

       }

       //--send the message--

       Transport.send(msg);

       System.out.println(”Messagesend OK.“);}catch(Exception ex){

       ex.printStackTrace();}

       A.7为了实现邮件的权限认证,我们需要做一个身份验证的模块CheckAuthenticator,这个类从Authenticator(抽象类)继承而来,要使用 Authenticator,先创建该抽象类的子类,并从getPasswordAuthentication()方法中返回PasswordAuthentication实例。创建完成后,必需向session 注册该Authenticator。这样,在需要认证的时候,就会通知 Authenticator。您可以通过JOptionPane来弹出窗口,这里使用Input对话框得到密码,具体应用中可以使用JPasswordField来实现(这个不是本文重点,关于Swing的内容请参看相关资料)。

       //CheckAuthenticator.java /* * Created on2022-5-18 * * TODO To changethe template for this generated file go to * Window-PreferencesCode StyleJavaCode Templates */

       public class CheckAuthenticator extends Authenticator {

       public PasswordAuthentication getPasswordAuthentication()

       {

       String userName, password;

       Properties props = System.getProperties();

       Session session = Session.getInstance(props);

       userName= session.getProperty(”mail.smtp.user“);

       password= JOptionPane.showInputDialog(”Enter your password :“);

       returnnew PasswordAuthentication(userName,password);

       } }

       A.8 回到SendMailGUI.java中,给send这个按钮添加动作实现代码:

       privatevoid sendActionPerformed(ActionEvent evt){

       /*addby chaoyang

       *

       *

       * Purpose:This is a funcation model.*/

       System.out.println(”开始发送邮件......“);

       Mail sendMail = new Mail();

       try{

       smtpServer_value= smtpAddress.getText();

       to_value= receiverField.getText();

       from_value= senderField.getText();

       subject_value= subjectField.getText();

       affixFileName_value= affixField.getText();

       body_value= bodyArea.getText();

       if(smtpServer_value!=null && to_value!= null && from_value!=null

       &&subject_value!=null && body_value!=null)

       { System.out.println(smtpServer_value to_value from_value subject_value body_value);

       sendMail.setSmtpServer(smtpServer_value);

       sendMail.setTo(to_value);

       sendMail.setFrom(from_value);

       sendMail.setSubject(subject_value);

       jLabel.setText(”从“ from_value ” 发往“ to_value ”

       注意输入密码...“);

       if(affixFileName_value!=null){

       sendMail.setFileName(affixFileName_value);

       }

       sendMail.setBody(body_value);

       MailSender mailSender = new MailSender();

       mailSender.send(sendMail);

       jLabel.setText(”发送成功!“);

       }

       }catch(Exceptione){

       e.printStackTrace();

       }

       }

       A.9 至此,这个GUI界面的邮件发送器完整做完了,它可以象在网易邮箱上发送邮件一样发送带附件的邮件。

       B, 接收邮件

       B.1在javamail项目里新建一个Package名为“com.leeyoung.javamail.receive”,然后新建一个“Swing main application”:

       “Next”->输入类名:ReceiveMailGUI ->“Finish”。

       B.2 同法炮制,利用可拖拽的可视化面板绘制一个接收邮件的GUI界面:

       B.3 对按钮“接收”编写动作实现代码:

       private void receiveButtonActionPerformed(ActionEventevt){

       // reveice your mail:

       MailreceiveMail = new Mail();//此处依然用到前面所做的Mail Bean

       try{

       StringTokenizerst = new StringTokenizer(mailAddressField.getText(),”@“);

       StringpopUser = st.nextToken();

       StringpopServer = ”pop.“ st.nextToken();

       popserver.setText(”用户“ popUser ” ,您所使用的邮件接收服务器是:“ popServer);

       StringpopPassword = String.valueOf(passwordField.getPassword());

       if(popPassword==null){

       JOptionPane.showMessageDialog(null,”您没有输入密码!“);

       }

       if(popServer!=null&& popUser!=null && popPassword!=null){

       receiveMail.setPopServer(popServer);

       receiveMail.setPopUser(popUser);

       receiveMail.setPopPassword(popPassword);

       //这里用到了一个receive方法,其参数是一个Mail对象,后面会给定义

       receive(receiveMail);

       }

       }catch(Exceptione){

       e.printStackTrace();

       }

       }

       B.4 “接收”动作实现方法receiveButtonActionPerformed中用到的receive(MailreceiveMail)方法内容如下:

       //receive mail Function

       /**

       * @param popServer

       * @param popUser

       * @param popPassword

       */

       publicvoid receive(Mail receiveMail){

       StringpopServer = receiveMail.getPopServer();

       StringpopUser = receiveMail.getPopUser();

       StringpopPassword = receiveMail.getPopPassword();

       Storestore = null;

       Folderfolder = null;

       try{

       Propertiesprops = System.getProperties();

       Sessionsession = Session.getDefaultInstance(props, null);

       store= session.getStore(”pop3“);

       store.connect(popServer,popUser, popPassword);

       folder= store.getDefaultFolder();

       if(folder == null)

       thrownew Exception(”No default folder“);

       folder= folder.getFolder(”INBOX“);

       if(folder == null)

       thrownew Exception(”No POP3 INBOX“);

       folder.open(Folder.READ_ONLY);

       Message[]msgs = folder.getMessages();

       for(int msgNum = 0;msgNum < msgs.length;msgNum ){

       printMessage(popServer,msgs[msgNum]);

       }

       }catch(Exception ex){

       ex.printStackTrace();

       }finally {

       try{

       if(folder!= null)

       folder.close(false);

       if(store!= null)

       store.close();

       }catch(Exception ex2){

       ex2.printStackTrace();

       }

       }

       }

       B.5 receive方法中调用的printMessage仅仅是为了将一些邮件信息反映到GUI界面上,这里就不再详解了,代码如下:

       //print

       /**

       * @param message

       */

       publicvoid printMessage(String popServer,Message message){

       //TODO Auto-generated method stub

       try{

       Stringfrom =((InternetAddress)message.getFrom()[0]).getPersonal();

       if(from == null)

       from=((InternetAddress)message.getFrom()[0]).getAddress();

       statusLable.setText(”成功从“ popServer ”接收到邮件!“);

       mailFrom.setText(from ”<“ String.valueOf(message.getFrom()[0]) ”>“);

       Stringsubject = message.getSubject();

       this.subject.setText(subject);

       PartmessagePart = message;

       Objectcontent = messagePart.getContent();

       if(content instanceof Multipart){

       messagePart=((Multipart)content).getBodyPart(0);

       }

       StringcontentType = messagePart.getContentType();

       if(contentType.startsWith(”text/plain“)

       ||contentType.startsWith(”text/html“)){

       this.contentType.setText(”文本“);

       InputStreamis = messagePart.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.Session:Session 类定义了一个基本邮件会话(session),是Java Mail API最高层入口类。所有其它类都是经由这个session 才得以生效。Session 对象用Java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其它信息。

       ·Javax.mail.Message:一旦获得 Session 对象,就可以继续创建要发送的消息。这由 Message 类来完成。因为 Message 是个抽象类,必需用一个子类,多数情况下为 Javax.mail.internet.MimeMessage。MimeMessage 是个能理解 MIME 类型和头的电子邮件消息,正如不同 RFC 中所定义的。虽然在某些头部域非 ASCII 字符也能被译码,但 Message 头只能被限制为用US-ASCII 字符。

       ·Javax.mail.Address:一旦您创建了 Session 和 Message,并将内容填入消息后,就可以用 Address 确定信件地址了。和Message 一样,Address 也是个抽象类。您用的是Javax.mail.internet.InternetAddress 类。

       ·Javax.mail.Authenticator:与 Java.net 类一样,JavaMailAPI 也可以利用 Authenticator 通过用户名和密码访问受保护的资源。对于JavaMail API 来说,这些资源就是邮件服务器。JavaMail Authenticator 在 Javax.mail 包中,而且它和Java.net 中同名的类 Authenticator 不同。两者并不共享同一个 Authenticator,因为JavaMailAPI 用于 Java 1.1,它没有Java.net 类别。要使用 Authenticator,先创建一个抽象类的子类,并从 getPasswordAuthentication()方法中返回 PasswordAuthentication 实例。创建完成后,您必需向session 注册 Authenticator。然后,在需要认证的时候,就会通知 Authenticator。您可以弹出窗口,也可以从配置文件中(虽然没有加密是不安全的)读取用户名和密码,将它们作为 PasswordAuthentication 对象返回给调用程序。

       ·Javax.mail.Transport:消息发送的最后一部分是使用 Transport 类。这个类用协议指定的语言发送消息(通常是 SMTP)。它是抽象类,它的工作方式与 Session 有些类似。仅调用静态send()方法,就能使用类的 缺省 版本:Transport.send(message);或者,读者也可以从针对自己的协议的会话中获得一个特定的实例,传递用户名和密码(如果不必要就不传),发送消息,然后关闭连接。

       ·Javax.mail.Store:Store类实现特定邮件协议上的读、写、监视、查找等操作。通过Javax.mail.Store类可以访问Javax.mail.Folder类。

       ·Javax.mail.Folder:Folder类用于分级组织邮件,并提供照Javax.mail.Message格式访问email的能力。

第五篇:企业邮箱及邮件服务器架设

       企业邮箱及邮件服务器架设

       企业邮箱是指以企业的域名作为后缀的电子邮件地址,通常一个企业经常有多个员工要使用电子邮件,企业邮箱可以让邮件管理员任意开设不同名字的邮箱,并根据不同的需求设定邮箱的空间,而且可以随时关闭或者删除这些邮箱。企业电子邮箱以企业域名为后缀,既能体现公司的品牌和形象,又能方便公司管理人员对员工信箱进行统一管理,还能使公司商业信函来往得到更好更安全的管理,是互联网时代不可缺少的企业现代化通讯工具。

       我们知道,企业也可以组建自己的Internet邮件服务器,从使用的角度来看,拥有自己的邮件服务器,可以为自己的员工设置电子邮箱,还可以根据需要设置不同的管理权限等等,并且,除了一般的终端邮件程序方式(如outlook,foxmail)收发E-mail之外,还可以实现WEB方式收发和管理邮件,比一般ISP提供的电子邮箱和虚拟主机提供的信箱更为方便。

       一、企业邮箱及邮件服务器的建立步骤

       1、企业需要申请合法的邮件域名。

       同企业网站web域名被访问一样,建立在企业邮件服务器上的企业邮件域名在Internet上是唯一的、不重复的,使全世界所有接入internet网的人都能够准确无误地相互发送邮件。

       2、需要有合法的固定IP地址。

       这里的固定IP地址主要是指目前在 Ipv4范围内的一个C类地址,这样的地址目前是Internet网上公认的,而且地址是越来越少。

       因此,一般来说,如果要在国际互联网上建企业的E-mail服务器时,我们首先需要注册域名。我们可以去中国互联网信息中心网站(.xiexiebang.com)进行注册。有了域名,我们还需要有固定IP地址才能使Internet用户能够访问企业邮箱,收发邮件。固定IP地址可通过申请DDN、ADSL和某些宽带上网线路时获得。通过适当的设置,将申请的域名指向企业的合法IP地址(术语称作DNS解析),这样我们就拥有了架设在互联网上的企业邮箱。

       实际操作中,我们在做好企业邮件域名和公网C类 IP地址申请后,并且映射好;接下来就是企业要选择好一台邮件服务器硬件和一套相应的邮件服务器软件,最后是将邮件软件安装配置在服务器上,接通互联网;根据对企业邮箱的规划与设计,开设企业员工的邮箱,测试邮件服务器上的企业邮箱同互联网上其他的邮件服务器的邮件收发互通,加强对企业邮箱及邮件服务器的安全和管理等,所有的这些都是我们建设企业邮箱及邮件服务器必须要做的工作。

       电子邮件是互联网最基本、但却是最重要的组成部分,通过电子邮件进行方便、快捷的信息交流,已经逐渐成为企业工作中不可或缺的行为习惯。企业邮箱是指以企业的域名作为后缀的电子邮件地址,通常一个企业经常有多个员工要使用电子邮件,企业邮箱可以让邮件管理员任意开设不同名字的邮箱,并根据不同的需求设定邮箱的空间,而且可以随时关闭或者删除这些邮箱。企业电子邮箱以企业域名为后缀,既能体现公司的品牌和形象,又能方便公司管理人员对员工信箱进行统一管理,还能使公司商业信函来往得到更好更安全的管理,是互联网时代不可缺少的企业现代化通讯工具。

       我们知道,企业也可以组建自己的Internet邮件服务器,从使用的角度来看,拥有自己的邮件服务器,可以为自己的员工设置电子邮箱,还可以根据需要设置不同的管理权限等等,并且,除了一般的终端邮件程序方式(如outlook,foxmail)收发E-mail之外,还可以实现WEB方式收发和管理邮件,比一般ISP提供的电子邮箱和虚拟主机提供的信箱更为方便。

       二、企业邮箱及邮件服务器的安全和管理

       由于受到互联网上的病毒泛滥以及黑客的攻击的影响,现在的邮件服务器在安全防护技术上有了较大的提高,包括数据身份认证、传输加密、垃圾邮件过滤、邮件病毒过滤、安全审计等的多项安全技术在邮件服务器中都得到了很好的应用。

       身份认证主要指SMTP发信认证,此项功能对于邮件服务器是一个可选功能,主要目的是防止黑客利用自己的服务器攻击其他邮件服务器。完善SMTP身份认证不仅可以制止黑客的恶劣行为,同时可以保证自己的邮件服务器的各种资源可以充分地应用到日常的邮件处理过程中,不会造成服务器的系统崩溃和资源浪费。无论是POP3协议还是SMTP协议,由于其在设计之初的缺陷,全部使用明码进行消息的传递,因此很容易造成信息的泄漏。我们可以通过两种方式提高系统的安全性:链路加密和端对端加密。

       链路加密是使用加密工具(软硬件工具)对传输的线路进行数据加密,需要网络设施的支持。端对端加密是邮件客户端到邮件客户端的加密,是邮件服务器应当提供的功能,目前较为流行的方式是使用SSL/TLS进行传输加密。垃圾邮件大多是一些带有商业性质的广告等宣传品。此外,许多病毒以及身份证和信用卡盗用案例也与垃圾邮件有关。因此,我们需要邮件服务器具有垃圾邮件处理的功能,抵御大部分垃圾邮件的攻击。黑客攻击和病毒本来是两个相对独立的技术体系,但是随着网络的不断发展,网络工具与病毒越来越趋于融合,比如尼姆达病毒既是病毒,也是网络攻击的一种方式,而应用广泛的电子邮件,也成了病毒传播的主要方式之一。目前,大多数邮件服务器都具有了基本的病毒防护的能力。

       对企业邮箱及邮件服务器的管理,我们应该要做好邮件服务器系统管理。对邮件服务器提供的各种服务连续进行工作情况记录,针形成系统运行审计历史记录文件,查找系统故障原因所在,查看邮件服务器提供的日志,对当前邮件服务器正在运行的各种服务进行实时工作情况观察,动态调整系统控制参数。我们也可以通过Web方式,监控邮件服务器的工作状态,包括在线用户数、邮件处理数量和速度、存储空间使用率等,并且可以随时对出现的发信高峰和网络攻击进行远程处理。

       对于提供网络服务的系统管理员而言, 企业邮箱用户管理是最基本的管理。用户的管理首先是用户帐户的管理。通常一个用户帐户包括一系列属性, 如帐户名称、帐户登录密码、用户名称、帐户建立日期、帐户隶属的用户组、帐户电子邮箱的大小等。一个功能完备的邮件服务器产品,应该为管理员提供用户帐户管理的多种手段。现在许多邮件服务器产品除了允许管理员在本机登录进行用户信息维护外,还允许管理员使用 Web浏览器通过网络远程登录进行用户管理操作,允许用户自行维护个人帐户信息,也是邮件服务器管理中不可缺少的功能。

       电子邮件是Internet上的基本应用之一使用电子邮件可以方便用户的交流与合作。在正规的企业中为每一个员工分配一个带有企业域名后缀的邮箱是企业标志象征的一部分。一般中小型企业会使用第三方服务商提供的电子邮箱而对于中、大型企业来说都应该有自己的邮件服务器为本企业员工提供服务这既是企业实力的体现也可以保护企业的机密数据。