资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JavaEE5学习笔记04-JavaMail使用总结刘岩Email:suhuanzheng163.com1. JavaMail简介其实利用JavaMail API发送邮件本身没什么,在Java Web系统中也可以将自己封装好的JavaMail的UtilBean作为一个模块来用。官方的解释是这样的JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。在Windows 2000下使用需要指定这些文件的路径,在其它的操作系统上也类似。一句话,如果您有时间,您愿意,完全可以利用JavaMail API开发一个山寨版的Foxmail。因为它确实为您屏蔽了底层的通讯协议、发送细节等等。2. 常用接口JavaMail常用的接口有如下几个1. javax.mail.Session:代表一次邮件会话。下面就是创建了会话Session session = Session.getDefaultInstance(properties,new Authenticator() /构造服务器认证对象Overrideprotected PasswordAuthentication getPasswordAuthentication() return new PasswordAuthentication(userName, password););当然,如果使用JBoss服务的时候,则可以采用注入的方式直接获取Session。2. javax.mail.Transport用于发送邮件的抽象类,它有一个SMTPTransport具体类/ 真正发送邮件Transport.send(msg);3. javax.mail.Store此类用于邮件的读取、写、监视、查找等等操作如下操作/ 使用pop3协议接收邮件URLName url = new URLName(pop3, getPop3Host(), getPop3Port(),null, getAccount(), getPassword();Store store = session.getStore(url);4. javax.mail.Folder用于组织邮件,代表邮件系统的一个文件夹。获取如下:Folder inbox = getStore().getFolder(INBOX);inbox.open(Folder.READ_WRITE);5. javax.mail.MimeMessage实际的邮件对象它下属性bte content:邮件内容的字节数组InternetHeaders header:邮件的文件头对象它还有如下方法Void addFrom():设置发件人Void addHeader():设置邮件头信息Void addRecipients():增加收件地址Address getFrom():返回邮件发件人地址列表Void setContent():设置Email的内容如下代码MimeMessage msg = new MimeMessage(session);6. javax.mail.Address制定人发件人、收件人地址,它也是一个抽象类,他有一个InternetAddress子类。如下/ 设置收件人/ 收件人可以是多个,所以是数组InternetAddress internetAddressTo = new InternetAddress(to),new InternetAddress(stail111163.com) ;7. javax.mail.Multipart用于保存电子邮件的内容的容器,它定义了添加、删除、获得电子邮件内容的方法。他也是抽象类,有一个子类叫做MimeMultipart。代码如下:Multipart mp = new MimeMultipart();/ 构造正文MimeBodyPart mbpContent = new MimeBodyPart();mbpContent.setText(content);mp.addBodyPart(mbpContent);8. javax.mail.BodyPart以上代码示例出现了MimeBodyPart,他是BodyPart的子类,代表邮件内容的一部分,既可以代表邮件正文、也可以代表邮件的附件。上面是描绘了一个普通的字符串。9. javax.activation.DataHandler该类允许邮件信息包含非文本的BodyPart对象,如下代码MimeBodyPart filembpContent = new MimeBodyPart();FileDataSource fds = new FileDataSource(files);filembpContent.setDataHandler(new DataHandler(fds);filembpContent.setFileName(fds.getName();mp.addBodyPart(filembpContent);10. javax.activation.FileDataSource一般是附件文件对象,可以用于给邮件增加附件。上面的代码中也就是增加了一个文件附件11. javax.activation.URLaSource代表一个url的远程资源3. 发送邮件实例还是来个实例代码实在点package mail.sendSimpleMail;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/* * 简单的发送邮件例子 * * author liuyan * */public class SendMail / 目的private String to;/ 来源private String from;/ 发送邮件的服务器private String smtpServer;/ 发送端的账户private String userName;/ 发送端的密码private String password;/ 邮件主题private String subject;/ 邮件内容private String content;/ 附件List attachments = new ArrayList();public String getTo() return to;public void setTo(String to) this.to = to;public String getFrom() return from;public void setFrom(String from) this.from = from;public String getSmtpServer() return smtpServer;public void setSmtpServer(String smtpServer) this.smtpServer = smtpServer;public String getUserName() return userName;public void setUserName(String userName) this.userName = userName;public String getPassword() return password;public void setPassword(String password) this.password = password;public String getSubject() return subject;public void setSubject(String subject) this.subject = subject;public String getContent() return content;public void setContent(String content) this.content = content;public List getAttachments() return attachments;public void setAttachments(List att
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号