java_web开发技术08_javamail

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

开发JavaMailWeb应用n课程内容nE-mail协议简介nSMTP简单邮件传送协议nPOP3邮局协议nE-mail接收的新协议IMAPnJavaMailAPI简介nJavaMail应用程序开发环境n获得JavaMailJAR文件n安装和配置Mail服务器n创建JavaMail应用程序n创建JavaMailWeb应用PDF文件使用pdfFactory试用版本创建协议:SimpleMailTransferProtocol,即简单邮件传输协议,是Internet传送E-mail的基本协议,也是TCP/IP协议组的成员。SMTP协议解决E-mail系统如何通过一条链路,把邮件从一台机器传递到另一台机器上的问题。n接收邮件服务器n使用POP3或IMAP协议PDF文件使用pdfFactory试用版本创建(PostOfficeProtocol3)即邮局协议第3版,这是Internet接收E-mail的基本协议,也是TCP/IP协议组的成员。n基于POP3协议的E-mail系统阅读信件的过程如下:用户通过自己所熟悉的E-mail客户端软件,例如Foxmail、OutlookExpress和theBat等,经过相应的参数设置(主要是设置POP3邮件服务器的IP地址或者域名、用户帐号及其对应密码)后,只要选择接收邮件操作,就能够将所有的邮件从远端的邮件服务器下载到用户的本地硬盘里。邮件下载之后,用户就可以在本地阅读了。当然,用户如果想节省上网费用,也可以选择在脱机状态下慢慢地阅读邮件。PDF文件使用pdfFactory试用版本创建(InternetMessageAccessProtocol),即直接收取邮件的协议,是与POP3不同的一种E-mail接收的新协议。IMAP协议可以让用户远程访问邮件服务器,并且可以在下载邮件之前预览信件主题与信件来源。有了IMAP,用户阅读邮件服务器上的邮件时,就像这些邮件存储在本地机上一样方便。n因为IMAP具有远程访问的能力,所以它最有可能被那些认为漫游是重要特性的公司用户所采用。在多数情况下,漫游用户愿意把他们的信件保存在邮件服务器上,这样通过任何一台机器的浏览器都可以收取新的信件或查看旧信。nIMAP协议不同于POP3协议,POP3协议将信件存储在一台服务器上,一旦用户和服务器连通,它便将信件发送到客户机上,并从服务器上删除这些邮件。而且,POP3不支持用户在服务器上创建邮件夹,可见,使用POP3时,用户对在邮件服务器上邮件的控制权很小。PDF文件使用pdfFactory试用版本创建支持各种电子邮件通信协议,如IMAP、POP3和SMTP,为Java应用程序提供了电子邮件处理的公共接口。PDF文件使用pdfFactory试用版本创建:代表邮件会话njavax.mail.Store:代表邮件服务器上的邮件账户的入口njavax.mail.Folder:代表邮件夹njavax.mail.Message:代表电子邮件njavax.mail.Address:邮件地址njavax.mail.Transport:负责发送邮件PDF文件使用pdfFactory试用版本创建:Session类定义了一个基本邮件会话,是JavaMailAPI最高层入口类。所有其它类都是经由这个Session才得以生效。Session对象从java.util.Properties对象中获取信息,如邮件发送服务器、接受邮件协议、发送邮件协议、用户名、密码及整个应用程序中共享的其它信息。njavax.mail.Store:Store类是访问接收邮件服务器上邮件账户的入口,通过Store类的getFolder方法,可以访问特定的邮件夹。njavax.mail.Folder:Folder类代表了邮件夹,用于分级组织邮件,通过Folder类可以访问邮件夹中的邮件。PDF文件使用pdfFactory试用版本创建:Message代表了电子邮件。Message类封装了邮件信息,提供了访问和设置邮件内容的方法。邮件中包含如下内容:n地址信息,包括发件人地址、收件人地址列表、抄送地址列表和广播地址列表n邮件标题n邮件发送和接收日期n邮件具体内容nMessage是个抽象类,常用的子类为Javax.mail.internet.MimeMessage。MimeMessage能支持MIME类型电子邮件消息。MIME(MultipurposeInternetMailExtensions)是一种电子邮件编码方式,它可以将发信人的电子邮件中的文本以及各种附件都打包后发送,传送时即时编码,收信人的软件收到邮件后也是即时解码还原,完全自动化,非常方便。当然先决条件是双方的软件都必须支持MIME编码,要不然发信人很方便地把信送出去了,但收信人的软件如果没有这种功能,无法把它还原,看到的也就是一大堆乱码了。PDF文件使用pdfFactory试用版本创建:Address代表了邮件地址,和Message一样,Address也是个抽象类。常用的子类为javax.mail.internet.InternetAddress类。njavax.mail.Transport:Transport类根据指定的邮件发送协议(通常是SMTP),通过指定的邮件发送服务器来发送邮件。Transport类是抽象类,它提供了一个静态方法send(Message)来发送邮件。PDF文件使用pdfFactory试用版本创建文件:mail.jar和activation.jar,它包含了JavaMailAPI中所有的接口和类。n下载地址为:文件使用pdfFactory试用版本创建操作系统中加入邮件发送和接收服务,发送邮件采用SMTP协议,接收邮件支持POP3和IMAP协议。每次启动操作系统时,会自动运行这两项服务。PDF文件使用pdfFactory试用版本创建(1)设置JavaMail属性://setpropertiesPropertiesprops=System.getProperties();props.put(mail.transport.protocol,smtp);props.put(mail.store.protocol,imap);props.put(mail.smtp.class,com.sun.mail.smtp.SMTPTransport);props.put(mail.imap.class,com.sun.mail.imap.IMAPStore);props.put(mail.smtp.host,hostname);PDF文件使用pdfFactory试用版本创建(2)调用javax.mail.Session类的静态方法Session.getDefaultInstance获取Session实例,该方法将根据已经配置的JavaMail属性来创建Session实例:Sessionmailsession=Session.getDefaultInstance(props,null);n(3)调用Session的getStore方法来取得Store对象,在本例中,将获取采用imap协议的Store对象:Storestore=mailsession.getStore(imap);根据配置的mail.imap.class属性,可以确定这里getStore方法返回com.sun.mail.imap.IMAPStore类型的Store对象。PDF文件使用pdfFactory试用版本创建(4)调用Store的connect方法连接到接收邮件服务器上的特定邮件账号。调用connect方法时你应该指定接收邮件服务器名称或IP地址、邮件账户名和口令。store.connect(hostname,username,password);PDF文件使用pdfFactory试用版本创建创建并发送邮件//createamessagemsg=newMimeMessage(mailsession);InternetAddress[]toAddrs=InternetAddress.parse(admin@mydomain.com,false);msg.setRecipients(Message.RecipientType.TO,toAddrs);msg.setSubject(hello);msg.setFrom(newInternetAddress(admin@mydomain.com));msg.setText(Howareyou);//sendamessageTransport.send(msg);参见MailTest.javaPDF文件使用pdfFactory试用版本创建邮件夹参看邮件信息://checkinboxFolderfolder=store.getFolder(inbox);folder.open(Folder.READ_WRITE);System.out.println(Youhave+folder.getMessageCount()+messagesininbox.);System.out.println(Youhave+folder.getUnreadMessageCount()+unreadmessagesininbox.);参见MailTest.javaPDF文件使用pdfFactory试用版本创建从邮件夹中读取信件://readfirstMessageininboxMessagemsg=folder.getMessage(1);System.out.println(------thefirstmessageininbox-------);System.out.println(From:+msg.getFrom()[

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功