Java Mail的使用
一.用于进行用户认证的类(PopupAuthenticator):
import javax.mail.*;
public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator(String user, String pass) {
username = user;
password = pass;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
二.用于封装发送邮件的用户信息的类(MailuserInfo):
public class MailuserInfo {
private int id;
//邮件服务器地址
private String host;
//一定要是有效的Email地址(否则无法通过认证)
private String from;
//邮件服务器用户认证
private String user;
private String password;
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
三.用于封装具体邮件信息的类(MailEntry):
public class MailEntry {
//抄送的地址
private String cc;
//发送的地址
private String to;
//邮件主题
private String title;
//邮件附件
private String file;
//邮件正文
private String content;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
public String getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
}
四.用于实现发送邮件功能的类(MailUtil):
import java.io.File;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
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;
public class MailUtil {
public static void send(MailuserInfo info,MailEntry entry)
{
try {
Properties properties = System.getProperties();
//邮件服务器
properties.put("mail.smtp.host", info.getHost());
//设置邮件发送协议
properties.put("mail.transport.protocol", "smtp");
//进行用户认证
properties.put("mail.smtp.auth","true");
//邮件服务器用户认证
PopupAuthenticator popAuthenticator = new PopupAuthenticator(info.getUser(),info.getPassword());
Session session = Session.getDefaultInstance(properties, popAuthenticator);
session.setDebug(false);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(info.getFrom()));
InternetAddress[] addresses = null;//{ new InternetAddress(entry.getTo()) };
String[] toArrays = entry.getTo().split(",");
addresses = new InternetAddress[toArrays.length];
for (int i = 0; i < toArrays.length; i++) {
addresses[i] = new InternetAddress(toArrays[i]);
System.out.println("发送的地址为:" + toArrays[i]);
}
if(entry.getCc() != null && (!"".equals(entry.getCc())))
{
String[] ccArrays = entry.getCc().split(",");
InternetAddress[] addresscc = new InternetAddress[ccArrays.length];
for (int i = 0; i < ccArrays.length; i++) {
addresscc[i] = new InternetAddress(ccArrays[i]);
System.out.println("抄送的地址为:" + ccArrays[i]);
}
msg.setRecipients(Message.RecipientType.CC, addresscc);
}
//设置邮件接收方的地址
msg.setRecipients(Message.RecipientType.TO, addresses);
//设置邮件主题
msg.setSubject(entry.getTitle());
//设置邮件发送日期
msg.setSentDate(new Date());
//邮件内容,附件等内容均添加到其中后再生成MimeMessage对象
Multipart multipart = new MimeMultipart();
//设置邮件正文
if(entry.getContent() != null)
{
System.out.println("设置邮件正文:" + entry.getContent());
BodyPart body = new MimeBodyPart();
body.setText(entry.getContent());
multipart.addBodyPart(body);
}
if(entry.getFile() != null && !entry.getFile().equals(""))
{
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setText("文件");
//Multipart multipart = new MimeMultipart();
//此处设置邮件的附件
DataSource source = new FileDataSource(entry.getFile());
bodyPart.setDataHandler(new DataHandler(source));
File file = new File(entry.getFile());
bodyPart.setFileName(file.getName());
multipart.addBodyPart(bodyPart);
System.out.println("发送附件..");
}
msg.setContent(multipart);
Transport transport = session.getTransport("smtp");
System.out.println("连接邮件服务器!");
transport.connect((String)properties.get("mail.smtp.host"),info.getUser(),info.getPassword());
System.out.println("发送邮件....");
transport.send(msg,msg.getRecipients(Message.RecipientType.TO));
System.out.println("发送成功!");
transport.close();
//Transport.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
注:在使用时需要导入的包:activation.jar,mail.jar.
分享到:
相关推荐
java mailjava mailjava mailjava mailjava mailjava mailjava mailjava mail
6. **MIME 编码**:在处理包含非ASCII字符的邮件或者附件时,Java Mail 使用MIME(Multipurpose Internet Mail Extensions)编码规则,以确保邮件在传输过程中不会被破坏。 7. **认证机制**:Java Mail 支持多种...
5. **使用场景**:Java Mail 1.4.5 可用于各种需要邮件功能的 Java 应用,如企业级应用的后台服务、自动化邮件通知系统、Web应用的用户验证服务等。 6. **注意事项**:使用 Java Mail 时,开发者需要注意配置正确的...
在实际开发中,使用Java Mail API时,我们需要首先添加对应的jar包到项目的类路径中,然后创建 `Session` 实例,配置邮件服务器的相关参数,最后通过 `Transport` 或 `Store` 对象进行邮件的发送和接收操作。...
Java Mail API 是一个广泛使用的Java库,用于处理电子邮件通信,包括发送、接收和管理邮件。在本场景中,我们将深入探讨如何使用Java Mail API来访问Lotus Domino邮箱系统。Lotus Domino是由IBM开发的企业级协作平台...
`mail.jar` 和 `activation.jar` 是两个关键的Java库,它们提供了JavaMail API,使得在Java程序中发送邮件变得可能。`activation.jar` 包含了JavaBeans Activation Framework (JAF),它用于识别和处理不同的MIME类型...
Java Mail 是一个开源的Java库,它为Java应用程序提供了与各种邮件系统交互的能力。这个"mail-1.4.7.jar"是Java Mail的一个版本,主要...对于开发者而言,理解并熟练使用Java Mail API是提升工作效率的一个关键技能。
在使用Java Mail API时,我们需要了解以下几个核心概念: 1. **Session**: Session是Java Mail中的核心对象,它是所有邮件操作的上下文。通过设置属性和提供密码验证信息,我们可以创建一个Session实例来配置邮件...
4. **mailapi.jar**:包含了Java Mail API的主要接口和抽象类,是使用Java Mail的基础。 使用Java Mail API发送邮件的基本步骤如下: 1. **创建Session**:首先,需要创建一个`Session`对象,配置邮件服务器的相关...
这个压缩包文件很可能包含了一组示例代码或工具,帮助我们理解如何使用Java Mail API来实现邮件功能。 在Java中,发送邮件主要依赖于JavaMail API和Java Activation Framework (JAF)。JavaMail API负责邮件的创建、...
总之,这个“java_mail 1.5.zip”压缩包对于Java开发者来说是一份宝贵的资源,通过学习源代码,不仅可以掌握如何使用JavaMail API发送邮件,还能深入了解邮件处理背后的机制,提高邮件应用的开发能力。
2. **邮件接收**:使用POP3(Post Office Protocol version 3)或IMAP(Internet Message Access Protocol)协议,Java Mail 可以从邮件服务器下载新的邮件,甚至支持离线模式。 3. **MIME支持**:MIME...
在本场景中,我们关注的是如何使用Java Mail通过QQ邮箱发送邮件。下面将详细介绍这个过程,包括必要的配置和步骤。 首先,确保你已经在项目中引入了Java Mail的相关依赖。通常,这会是`javax.mail`和`javax.mail-...
在“java-mail-1.4”这个版本中,我们主要关注的是 JavaMail 1.4 版本的相关特性、使用方法以及重要概念。 JavaMail 提供了与多种邮件协议(如 SMTP、POP3、IMAP)交互的能力,使得开发者能够轻松地在 Java 应用...
该资源包含了java mail开发所需要的jar,如下: commons-email-1.2-bin.zip commons-email-1.4-bin.zip javamail_1.4.6.zip javamail_1.4.7.zip javax.mail.jar mailapi.jar smtp.jar
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个工具类的创建旨在简化邮件处理的复杂性,使开发者能够便捷地集成邮件功能。以下是对JavaMail工具类及其相关知识点的详细说明: 1. **...
在使用Java Mail API时,首先需要引入相应的依赖库,例如 javax.mail 和 javax.mail.internet 包。接着,你需要配置邮件服务器的相关参数,如主机名、端口号、用户名和密码。这些信息通常会封装在一个Properties对象...