JavaMail 深入浅出

preview
需积分: 0 3 下载量 162 浏览量 更新于2008-10-17 收藏 86KB DOC 举报
JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。通过JavaMail API,开发者可以实现发送、接收、管理邮件等操作。本篇文章将深入探讨JavaMail的基本概念、核心协议以及如何使用JavaMail发送邮件。 我们需要了解邮件传输过程中涉及的一些基本协议: 1. **SMTP(Simple Mail Transfer Protocol)**:SMTP是互联网上广泛使用的发送邮件的协议。JavaMail中的程序通常会与ISP的SMTP服务器交互,以转发邮件给接收方的SMTP服务器,最终用户可以通过POP或IMAP获取邮件。 2. **POP(Post Office Protocol)**:POP3是一种用于从邮件服务器下载邮件的协议。它允许每个用户有一个邮箱,并且大多数功能需要依赖客户端软件(如Eudora或Microsoft Outlook)来提供,因为POP本身并不支持查看新邮件数量等功能。 3. **IMAP(Internet Message Access Protocol)**:IMAP4是一种更先进的邮件接收协议,提供了比POP更丰富的功能,如离线阅读、邮件标记等。邮件服务器必须支持IMAP协议,才能提供这些高级特性。 4. **MIME(Multipurpose Internet Mail Extensions)**:MIME标准定义了邮件内容的格式,包括文本、图像、附件等,使得邮件可以包含多种类型的数据。 5. **NNTP(Network News Transfer Protocol)**:NNTP协议用于网络新闻组的通信,JavaMail API支持扩展以支持NNTP,但NNTP不是电子邮件的标准协议。 要使用JavaMail,首先需要从官方网站下载JavaMail API(`mail.jar`)和JavaBeans Activation Framework(JAF,`activation.jar`),并将它们添加到项目的类路径中。如果是在J2EE环境中,由于J2EE本身已经包含了邮件服务的支持,可以直接使用J2EE的类,确保`j2ee.jar`在类路径中即可。 以下是一个使用JavaMail发送邮件的基本示例: 1. **获取系统Properties**:设置邮件相关的属性,例如SMTP服务器的主机名。 ```java Properties props = System.getProperties(); props.put("mail.smtp.host", host); ``` 2. **创建Session对象**:Session是JavaMail的核心,它管理着邮件的配置和上下文。 ```java Session session = Session.getDefaultInstance(props, null); ``` 3. **创建MimeMessage**:MimeMessage是JavaMail用来表示邮件内容的对象。 ```java MimeMessage message = new MimeMessage(session); ``` 4. **设置发件人和收件人**: ```java message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ``` 5. **设置邮件主题和正文**: ```java message.setSubject(subject); message.setText(body); ``` 6. **发送邮件**: ```java Transport transport = session.getTransport("smtp"); transport.connect(host, username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); ``` 以上就是JavaMail的基础知识和一个简单的发送邮件的例子。在实际开发中,还可以根据需求添加抄送、密送、添加附件、使用SSL/TLS加密连接等功能。理解这些核心概念和API,可以帮助你更有效地在Java应用程序中集成邮件功能。