package test;
import java.util.ArrayList;
import java.util.List;
public class MailBean {
// 发送邮件服务器
private String hostName = "smtp.163.com";
// 发送邮件服务器端口
private int port = 25;
// 发送者邮箱用户名
private String userName = "xxx";
// 发送者邮箱密码
private String password = "xxx";
// 邮件接收者
private String[] toAddress = new String[]{"xxx@163.com","xxx@qq.com"};
// 邮件主题
private String subject = "JavaMial 测试";
// 邮件内容
private String content = "这是一封JavaMail测试邮件";
// 邮件发送者
private String fromAddress = "xxx@163.com";
//附件路径列表
private List<String> fileList=new ArrayList<String>();
public List<String> getFileList() {
return fileList;
}
public void setFileList(List<String> fileList) {
this.fileList = fileList;
}
public String getFromAddress() {
return fromAddress;
}
public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
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[] getToAddress() {
return toAddress;
}
public void setToAddress(String[] toAddress) {
this.toAddress = toAddress;
}
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;
}
}
package test;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
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.MimeMessage;
public class JavaMail {
@SuppressWarnings("static-access")
public void setMail(MailBean mailBean) {
try {
// 设置JavaMail属性
Properties props = new Properties();
// 设置邮件服务器端口
props.put("mail.smtp.port", mailBean.getPort());
// SMTP邮件服务器IP地址或主机名
props.put("mail.smtp.host", mailBean.getHostName());
props.put("mail.smtp.auth", "true");
// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
EmailAuthenticator auth = new EmailAuthenticator(mailBean.getUserName(), mailBean.getPassword());
// 根据已配置的JavaMail属性创建Session实例
Session mailSession = Session.getInstance(props, (Authenticator) auth);
// 你可以在控制台(console)上看到发送邮件的过程
mailSession.setDebug(true);
MimeMessage msg = new MimeMessage(mailSession);
// 设置邮件接收者
String[] toAddress = mailBean.getToAddress();
for (int i = 0; i < mailBean.getToAddress().length; i++) {
Address address = new InternetAddress(toAddress[i].toString());
msg.addRecipient(Message.RecipientType.TO, address);
}
// 调置邮件主题
msg.setSubject(mailBean.getSubject());
// 设置邮件发送者
msg.setFrom(new InternetAddress(mailBean.getFromAddress()));
// 设置邮件正文
msg.setText(mailBean.getContent());
// 创建Transport对象
Transport tran = mailSession.getTransport("smtp");
// 连接邮件服务器
tran.connect(mailBean.getHostName(), mailBean.getUserName(), mailBean.getPassword());
// 发送邮件
tran.send(msg);
tran.close();
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
// 邮件用户身份验证类
class EmailAuthenticator extends Authenticator {
private String username;
private String userpass;
EmailAuthenticator(String un, String up) {
super();
username = un;
userpass = up;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, userpass);
}
}
public static void main(String[] args) {
JavaMail javaMail = new JavaMail();
MailBean mailBean = new MailBean();
javaMail.setMail(mailBean);
}
}
分享到:
相关推荐
### JavaMail 发送带附件的电子邮件 在Java开发过程中,经常需要通过程序自动发送电子邮件,尤其是在需要进行用户通知、密码重置或者系统日志报告等场景。JavaMail API提供了非常强大的功能来支持这些需求,包括...
这个资源提供了一个具体的示例,展示了如何使用JavaMail API 来发送带有附件的邮件。以下是对这个主题的详细解释: 首先,你需要理解JavaMail的核心组件。`javax.mail` 和 `javax.mail.internet` 包含了发送邮件所...
JavaMail API支持MIME(多用途互联网邮件扩展)格式,这使得我们能够处理包括文本、图片、音频、视频以及各种其他类型在内的复杂邮件内容,包括附件。 下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件...
本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...
这个例子展示了如何使用JavaMail发送带附件的邮件。需要注意的是,实际应用中应处理各种异常,确保邮件发送的健壮性。此外,如果你的邮件服务器需要身份验证,还需要提供一个Authenticator来处理登录信息。 总的来...
它提供了一套丰富的API接口,可以用来处理各种类型的邮件,包括但不限于简单的文本邮件、HTML格式邮件以及带有附件的邮件等。虽然JavaMail最初由Sun公司创建,但随着Java技术的发展,JavaMail已经成为了一个开放源...
JavaMail邮件系统的设计与实现是基于Java编程语言的,它利用了JavaMail API来处理电子邮件的发送、接收等任务。JavaMail API是一个开源的、跨平台的库,它提供了与各种邮件服务器通信的能力,支持SMTP(简单邮件传输...
以上代码片段展示了如何在不生成临时Excel文件的情况下,使用JavaMail API和Apache POI发送带有Excel附件的邮件。这种方法既高效又节省资源,尤其适用于处理大量数据时。记得在完成邮件发送后,关闭所有打开的流,以...
在这个场景下,我们讨论的是一个使用JSP和Servlet实现的邮件发送系统,该系统具备发送带有多个附件的功能。这个系统可能基于JavaMail API来实现邮件的发送,而JavaMail是一个强大的开源库,可以处理复杂的邮件服务...
在Java中,如果你想要发送带有附件、HTML内容或者需要进行SMTP验证的邮件,JavaMail是必不可少的工具。 JavaMail API 提供了丰富的类和接口,使得开发者能够方便地执行以下任务: 1. 创建、发送和读取邮件 2. 支持...
JavaMail邮件系统是一种基于Java平台的邮件发送和接收解决方案,它允许开发者通过编程方式与SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)等邮件服务器进行交互。在JavaMail中,...
message.setSubject("带有附件的邮件"); Multipart multipart = new MimeMultipart(); MimeBodyPart textPart = new MimeBodyPart(); textPart.setText("邮件正文"); multipart.addBodyPart(textPart); for (File ...
如果需要发送带附件的邮件,可以使用MimeBodyPart和Multipart类来构建复杂的邮件结构。首先,创建一个Multipart对象作为邮件的内容容器,然后添加MimeBodyPart对象,每个MimeBodyPart可以代表一个文本或附件。最后,...
在 Java 开发中,如果你需要构建一个能够发送邮件的功能,JavaMail 就是一个不可或缺的工具。本教程将带你深入了解 JavaMail 的基础概念,并教你如何使用它来发送邮件。 ### 1. JavaMail API 概述 JavaMail API ...
本篇文章将详细介绍如何使用JavaMail API在Android中发送带有附件并进行群发的电子邮件。首先,我们需要理解JavaMail API的工作原理以及如何将其集成到Android项目中。 1. **集成JavaMail库** 在Android项目中,...
在上面的代码中,postMail 方法用于发送邮件,它支持发送带附件和不带附件的邮件。 postMail 方法的实现过程如下: 1. 首先,获取 EmailData 对象的属性,如发件人、收件人、邮件主题、邮件内容等。 2. 然后,创建...
3. **构建Multipart对象(可选)**:如果你需要发送带附件或者HTML内容的邮件,可以使用Multipart来组合文本和附件。例如: ```java Multipart multipart = new MimeMultipart(); BodyPart textPart = new ...
发送不带附件的邮件时,SMTP处理纯文本内容,包括邮件主题、发件人、收件人、抄送人和邮件正文。 2. **IMAP协议**:收邮件通常使用Internet Message Access Protocol(互联网邮件访问协议)。IMAP允许用户从邮件...
本篇文章将深入探讨如何利用Java进行邮件开发,尤其是关注接收带附件的邮件。 首先,我们需要了解JavaMail API。这是一个开放源代码的Java库,它提供了与多种邮件协议(如SMTP, POP3, IMAP)交互的接口。要接收邮件...