JavaMail是一个通过邮件服务器发送和接收邮件的平台独立的框架。
一、简单邮件发送
首先我们需要创建一个Session对象,然后创建一个默认的MimeMessage对象。
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class EmailSender {
public void sendEmail(String recipient, String subject, String messageBody) {
//定义发送邮件的属性
final String username = "your-email-id";
final String password = "your-password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
//获取Session对象
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
//创建MimeMessage对象
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from-email"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipient));
message.setSubject(subject);
message.setText(messageBody);
//发送邮件
Transport.send(message);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
二、发送含有附件的邮件
如果你想要在邮件中添加附件,则需要创建一个使用Multipart实例的MimeMessage,并添加至少一个BodyPart实例到这个Multipart实例中。
public class EmailSenderWithAttachment {
public void sendEmailWithAttachment(String recipient, String subject, String messageBody, String fileName) {
//创建和配置Session
//...省略相同的部分代码...
try {
//创建含有附件的邮件
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from-email"));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(recipient));
message.setSubject(subject);
Multipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(messageBody);
multipart.addBodyPart(messageBodyPart);
//创建附件部分
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(fileName);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
//设置邮件内容
message.setContent(multipart);
//发送邮件
Transport.send(message);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
这段代码中添加了一个新的MimeBodyPart对象到Multipart实例中,这个新的对象包含了附件的内容
沃梦达教程
本文标题为:使用Java发送邮件
猜你喜欢
- 基于Java Agent的premain方式实现方法耗时监控问题 2023-06-17
- ExecutorService Callable Future多线程返回结果原理解析 2023-06-01
- Java实现顺序表的操作详解 2023-05-19
- JSP页面间传值问题实例简析 2023-08-03
- Springboot整合minio实现文件服务的教程详解 2022-12-03
- JSP 制作验证码的实例详解 2023-07-30
- Java中的日期时间处理及格式化处理 2023-04-18
- Spring Security权限想要细化到按钮实现示例 2023-03-07
- 深入了解Spring的事务传播机制 2023-06-02
- SpringBoot使用thymeleaf实现一个前端表格方法详解 2023-06-06