之前分享过一个发邮件的类,今天再分享一个收邮件的类,
package zhang.stony.mail;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
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.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
* @author Stony Zhang (Mybeautiful)
* @Createdate 2010-8-12
* @Emal:stonyz@live.com
* @QQ:55279427
*/
public class MailSender {
private MailSetting mSetting;
private Session session;
public MailSender(MailSetting mSetting) {
this.mSetting = mSetting;
final String username = mSetting.getUser();
final String password = mSetting.getPassword();
Properties props = new Properties();
props.put("mail.smtp.host", mSetting.getSmtpHost());
props.put("mail.smtp.auth", "true");
session = Session.getInstance(props, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
public void sentMessage(String titile, String msg, String[] to)
throws MessagingException {
this.sentMessage(titile, msg, to, null);
}
public void sentMessage(String titile, String msg, String[] to, String[] cc)
throws MessagingException {
Message mailMessage = new MimeMessage(session);
Address from = new InternetAddress(mSetting.getUser());
mailMessage.setFrom(from);
// Address to = new InternetAddress(mSetting.getUser());
Address[] tos = new Address[to.length];
for (int i = 0; i < to.length; i++) {
tos[i] = new InternetAddress(to[i]);
}
mailMessage.setRecipients(Message.RecipientType.TO, tos);
if (cc != null && cc.length > 0) {
Address[] ccs = new Address[cc.length];
for (int i = 0; i < cc.length; i++) {
ccs[i] = new InternetAddress(cc[i]);
}
mailMessage.setRecipients(Message.RecipientType.CC, ccs);
}
mailMessage.setSubject(titile);
mailMessage.setSentDate(new Date());
// mailMessage.setText(msg);
BodyPart mdp = new MimeBodyPart();
mdp.setContent(msg, "text/html;charset=gb2312");
Multipart mm = new MimeMultipart();
mm.addBodyPart(mdp);
mailMessage.setContent(mm);
mailMessage.saveChanges();
Transport.send(mailMessage);
}
}
其中用到了一个MailSetting的类,其内容请参阅 分享一个收邮件的类,使用相当简单
关于Javamail,几年间已经用了N多次了,其间也碰到了一些问题,也都一一解决了,比如发送附件,乱码等等,如果各位有兴趣就相关问题进行探讨,欢迎留言。
分享到:
相关推荐
### JavaMail 发送 HTML 格式邮件的知识点详解 #### 一、JavaMail 概述 JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和...
4. **发送HTML邮件** - 如果邮件内容是HTML,需要创建一个`Multipart`对象,并添加一个`MimeBodyPart`来容纳HTML内容。 - 示例代码: ```java Multipart mp = new MimeMultipart("alternative"); MimeBodyPart ...
这就是使用JavaMail发送HTML格式邮件和附件的基本流程。需要注意的是,实际应用中,你需要替换示例中的服务器地址、端口、用户名和密码等信息,确保它们与你的邮件服务提供商兼容。此外,为了提高用户体验,还可以...
在IT行业中,发送HTML...通过这个实例,你不仅可以学习到如何使用JavaMail发送HTML邮件,还能了解到Java处理网络通信、使用API和理解邮件协议的基本方法。这些知识在日常开发工作中非常实用,有助于提升你的编程技能。
### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...
在实际开发中,可能还需要处理更多复杂情况,如SSL/TLS加密、HTML邮件、多部分消息等。JavaMail API提供了丰富的功能来应对这些需求,让开发者能够灵活地构建邮件系统。 博客链接中提到的ITEYE博客...
JavaMail API 支持发送HTML邮件,通过`MimeMessage`类的`setText()`方法可以设置HTML正文,其中可以使用`<img>`标签引用图片。 5. **图片作为附件**: 图片可以作为邮件的附件发送,这通常通过`MimeBodyPart`类...
在提供的压缩包文件"javamail实例"中,可能包含了上述代码的完整实现以及其他相关的示例,这些示例可以帮助你更好地理解和使用JavaMail API,比如添加附件、设置HTML格式的邮件内容等。通过深入研究和实践这些示例,...
在实际应用中,可能还需要处理更复杂的情况,如添加附件、设置抄送和密送、以及使用 HTML 格式的邮件正文。以下是如何添加附件的示例: ```java MimeBodyPart messageBodyPart = new MimeBodyPart(); ...
JavaMail还支持更复杂的功能,如HTML邮件、多部分邮件、使用IMAP/POP3接收邮件等。开发者可以根据具体需求选择相应的API来实现。通过阅读JavaMail的官方文档和参考示例代码,可以进一步了解和掌握这个强大的工具。
JavaMail还支持发送HTML邮件、添加附件、使用SSL/TLS加密连接等高级特性。例如,发送HTML邮件可以使用`MimeBodyPart`和`MimeMultipart`: ```java MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart....
这个例子展示了如何使用JavaMail API的基本功能,包括SMTP认证、添加附件和发送HTML邮件,这对于开发Web应用或其他需要邮件功能的应用来说非常实用。通过扩展这个例子,你可以实现更复杂的邮件服务,如接收邮件、...
8. **使用JavaMail发送HTML邮件**:通过设置`MimeMessage`的`setContent()`方法,可以发送包含HTML的邮件。 ```java message.setContent("<h1>HTML邮件标题</h1><p>这是HTML邮件正文。</p>", "text/html;charset=...
2. `sendHtmlEmail(String from, String to, String subject, String htmlBody)`: 发送HTML格式的邮件,htmlBody参数包含HTML格式的邮件内容,可以包含样式和图片等元素。 3. `addAttachment(String filePath, ...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个小程序可能包含了一套完整的类,可以帮助开发者快速构建邮件发送功能,无需从头开始编写所有必需的代码。 JavaMail 提供了对...
JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,包括发送、接收邮件以及处理复杂的邮件格式,如文本、图片和附件。在这个小例子中,我们将深入探讨如何利用JavaMail API来实现这些功能。 ...
发送HTML邮件的基本步骤如下: 1. 创建Properties对象,设置SMTP服务器的相关属性: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.example.com"); props.put("mail.smtp.port...
如果需要发送HTML格式的邮件或添加附件,可以使用`MimeBodyPart`和`Multipart`: ```java MimeBodyPart textPart = new MimeBodyPart(); textPart.setText("这是HTML邮件内容"); MimeBodyPart attachmentPart = ...
### JavaMail 发送支持带有图片的 HTML 格式和普通文本格式邮件 #### 概述 JavaMail API 是一个广泛使用的 Java 库,用于发送和接收电子邮件。它提供了丰富的功能来处理不同类型的邮件内容,包括纯文本、HTML 格式...