导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx</groupId>
<artifactId>SpringMail</artifactId>
<version>1.0-SNAPSHOT</version>
<name>SpringMail</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.19</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.3.18</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.18</version>
</dependency>
</dependencies>
<build>
</build>
</project>
普通文本:
package com.xxx.mail;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
/**
* @Author 陈平安
* @Date 2022/6/23 9:18
* @PackageName:com.xxx.mail
* @ClassName: MailTest01
* @Description: TODO
* @Version 1.0
*/
/**
* 生成普通文本
*/
public class MailTest01 {
public static void main(String[] args) throws MessagingException {
Properties properties = new Properties();
properties.setProperty("mail.smtp.host", "smtp.qq.com");//定义服务器配置
properties.setProperty("mail.smtp.port", "587");//端口号不同
properties.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(properties);
session.setDebug(true);
Transport transport = session.getTransport();
transport.connect("3550462027@qq.com", "bnhytgzktdzechgh");
Message message = createMail(session);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private static Message createMail(Session session) throws MessagingException {
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom("3550462027@qq.com");
mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("3550462027@qq.com"));
mimeMessage.setSubject("测试内容");
mimeMessage.setSentDate(new Date());
mimeMessage.setText("这是一个测试内容");
return mimeMessage;
}
}
html类文章:
package com.xxx.mail;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
import java.util.Date;
import java.util.Properties;
/**
* @Author 陈平安
* @Date 2022/6/23 9:18
* @PackageName:com.xxx.mail
* @ClassName: MailTest01
* @Description: TODO
* @Version 1.0
*/
/**
* 生成普通文本
*/
public class MailTest02 {
public static void main(String[] args) throws MessagingException {
Properties properties = new Properties();
properties.setProperty("mail.smtp.host", "smtp.qq.com");//定义服务器配置
properties.setProperty("mail.smtp.port", "587");//端口号不同
properties.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(properties);
session.setDebug(true);
Transport transport = session.getTransport();
transport.connect("3550462027@qq.com", "bnhytgzktdzechgh");
Message message = createHTMLMail(session);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private static Message createHTMLMail(Session session) throws MessagingException {
MimeMessage message = new MimeMessage(session);
message.setFrom("3550462027@qq.com");;
message.setRecipient(Message.RecipientType.TO,new InternetAddress("3550462027@qq.com"));
message.setSentDate(new Date());
message.setSubject("测试主题");
//多媒体对象
MimeMultipart mimeMultipart = new MimeMultipart();
MimeBodyPart mimeBodyPart = new MimeBodyPart();
StringBuffer buffer = new StringBuffer();
buffer.append("<html><body><a href=\"https://www.baidu.com\">百度</a></body></html>");
mimeBodyPart.setContent(buffer.toString(),"text/html;charset=UTF-8");
mimeMultipart.addBodyPart(mimeBodyPart);
message.setContent(mimeMultipart);
return message;
}
private static Message createMail(Session session) throws MessagingException {
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom("3550462027@qq.com");
mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("3550462027@qq.com"));
mimeMessage.setSubject("测试内容");
mimeMessage.setSentDate(new Date());
mimeMessage.setText("这是一个测试内容");
return mimeMessage;
}
}
附件
package com.xxx.mail;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Date;
import java.util.Properties;
/**
* @Author 陈平安
* @Date 2022/6/23 9:18
* @PackageName:com.xxx.mail
* @ClassName: MailTest01
* @Description: TODO
* @Version 1.0
*/
/**
* 生成普通文本
*/
public class MailTest03 {
public static void main(String[] args) throws MessagingException {
Properties properties = new Properties();
properties.setProperty("mail.smtp.host", "smtp.qq.com");//定义服务器配置
properties.setProperty("mail.smtp.port", "587");//端口号不同
properties.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(properties);
session.setDebug(true);
Transport transport = session.getTransport();
transport.connect("3550462027@qq.com", "bnhytgzktdzechgh");
Message message = createAttackedHTMLMail(session);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
private static Message createAttackedHTMLMail(Session session) throws MessagingException {
MimeMessage message = new MimeMessage(session);
message.setFrom("3550462027@qq.com");
;
message.setRecipient(Message.RecipientType.TO, new InternetAddress("3550462027@qq.com"));
message.setSentDate(new Date());
message.setSubject("测试主题01");
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent("<h2>这是一个附件文章</h2>", "text/html;charset=UTF-8");
MimeBodyPart mimeBodyPart1 = new MimeBodyPart();
DataHandler dataHandler = new DataHandler(new FileDataSource("C:\\Users\\Lenovo\\Desktop\\新建文本文档.txt"));
mimeBodyPart1.setDataHandler(dataHandler);
mimeBodyPart1.setFileName(dataHandler.getName());
MimeMultipart mimeMultipart = new MimeMultipart();
mimeMultipart.addBodyPart(mimeBodyPart);
mimeMultipart.addBodyPart(mimeBodyPart1);
mimeMultipart.setSubType("mixed");
message.setContent(mimeMultipart);
return message;
}
private static Message createHTMLMail(Session session) throws MessagingException {
MimeMessage message = new MimeMessage(session);
message.setFrom("3550462027@qq.com");
;
message.setRecipient(Message.RecipientType.TO, new InternetAddress("3550462027@qq.com"));
message.setSentDate(new Date());
message.setSubject("测试主题");
//多媒体对象
MimeMultipart mimeMultipart = new MimeMultipart();
MimeBodyPart mimeBodyPart = new MimeBodyPart();
StringBuffer buffer = new StringBuffer();
buffer.append("<html><body><a href=\"https://www.baidu.com\">百度</a></body></html>");
mimeBodyPart.setContent(buffer.toString(), "text/html;charset=UTF-8");
mimeMultipart.addBodyPart(mimeBodyPart);
message.setContent(mimeMultipart);
return message;
}
private static Message createMail(Session session) throws MessagingException {
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom("3550462027@qq.com");
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("3550462027@qq.com"));
mimeMessage.setSubject("测试内容");
mimeMessage.setSentDate(new Date());
mimeMessage.setText("这是一个测试内容");
return mimeMessage;
}
}
以下是升级版本:
package com.xxx.mail;
import java.util.List;
/**
* @Author 陈平安
* @Date 2022/6/23 10:04
* @PackageName:com.xxx.mail
* @ClassName: Test
* @Description: TODO
* @Version 1.0
*/
public class Test {
private String serverHost;
private String serverPort;
private String formAddress;
private List<String> toAddress;
private String userName;
private String userpwd;
private String subject;
private String content;
private Boolean flag = true;
private List<String> attachFilename;
public String getServerHost() {
return serverHost;
}
public void setServerHost(String serverHost) {
this.serverHost = serverHost;
}
public String getServerPort() {
return serverPort;
}
public void setServerPort(String serverPort) {
this.serverPort = serverPort;
}
public String getFormAddress() {
return formAddress;
}
public void setFormAddress(String formAddress) {
this.formAddress = formAddress;
}
public List<String> getToAddress() {
return toAddress;
}
public void setToAddress(List<String> toAddress) {
this.toAddress = toAddress;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserpwd() {
return userpwd;
}
public void setUserpwd(String userpwd) {
this.userpwd = userpwd;
}
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;
}
public Boolean getFlag() {
return flag;
}
public void setFlag(Boolean flag) {
this.flag = flag;
}
public List<String> getAttachFilename() {
return attachFilename;
}
public void setAttachFilename(List<String> attachFilename) {
this.attachFilename = attachFilename;
}
}
package com.xxx.mail;
import java.util.ArrayList;
/**
* @Author 陈平安
* @Date 2022/6/23 10:58
* @PackageName:com.xxx.mail
* @ClassName: Test01
* @Description: TODO
* @Version 1.0
*/
public class Test0 {
public static void main(String[] args) {
test01();
}
public static void test01() {
Test test = new Test();
test.setServerHost("smtp.qq.com");
test.setServerPort("587");
test.setUserName("3550462027@qq.com");
test.setUserpwd("bnhytgzktdzechgh");
test.setSubject("邮件封装测试");
test.setFormAddress("3550462027@qq.com");
test.setContent("<h2>这是一个附件文章</h2>");
ArrayList<String> list = new ArrayList<>();
list.add("3550462027@qq.com");
test.setToAddress(list);
ArrayList<String> list1 = new ArrayList<>();
list1.add("C:\\Users\\Lenovo\\Desktop\\新建文本文档.txt");
test.setAttachFilename(list1);
MailSender sender = new MailSender();
sender.sendMail(test);
}
}
package com.xxx.mail;
import java.util.ArrayList;
/**
* @Author 陈平安
* @Date 2022/6/23 10:58
* @PackageName:com.xxx.mail
* @ClassName: Test01
* @Description: TODO
* @Version 1.0
*/
public class Test01 {
public static void main(String[] args) {
test01();
}
public static void test01() {
Test test = new Test();
test.setServerHost("smtp.qq.com");
test.setServerPort("587");
test.setUserName("3550462027@qq.com");
test.setUserpwd("bnhytgzktdzechgh");
test.setSubject("邮件封装测试");
test.setFormAddress("3550462027@qq.com");
test.setContent("<h2>这是一个附件文章</h2>");
ArrayList<String> list = new ArrayList<>();
list.add("3550462027@qq.com");
test.setToAddress(list);
MailSender sender = new MailSender();
sender.sendMail(test);
}
}
package com.xxx.mail;
import java.util.ArrayList;
/**
* @Author 陈平安
* @Date 2022/6/23 10:58
* @PackageName:com.xxx.mail
* @ClassName: Test01
* @Description: TODO
* @Version 1.0
*/
public class Test02 {
public static void main(String[] args) {
test01();
}
public static void test01() {
Test test = new Test();
test.setServerHost("smtp.qq.com");
test.setServerPort("587");
test.setUserName("3550462027@qq.com");
test.setUserpwd("bnhytgzktdzechgh");
test.setSubject("邮件封装测试");
test.setFormAddress("3550462027@qq.com");
test.setContent("<h2>这是一个附件文章</h2>");
ArrayList<String> list = new ArrayList<>();
list.add("3550462027@qq.com");
test.setToAddress(list);
ArrayList<String> list1 = new ArrayList<>();
list1.add("C:\\Users\\Lenovo\\Desktop\\新建文本文档.txt");
test.setAttachFilename(list1);
MailSender sender = new MailSender();
sender.sendMail(test);
}
}
package com.xxx.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
* @Author 陈平安
* @Date 2022/6/23 10:07
* @PackageName:com.xxx.mail
* @ClassName: Identify
* @Description: TODO
* @Version 1.0
*/
public class Identify extends Authenticator {
private String userName;
private String userPwd;
public Identify(String userName, String userPwd) {
this.userName = userName;
this.userPwd = userPwd;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName,userPwd);
}
}
package com.xxx.mail;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Properties;
/**
* @Author 陈平安
* @Date 2022/6/23 10:31
* @PackageName:com.xxx.mail
* @ClassName: MailSender
* @Description: TODO
* @Version 1.0
*/
public class MailSender {
public void sendMail(Test test) {
try {
Properties properties = new Properties();
properties.setProperty("mail.smtp.host", test.getServerHost());//定义服务器配置
properties.setProperty("mail.smtp.port", test.getServerPort());//端口号不同
properties.setProperty("mail.smtp.auth", test.getFlag().toString());
Identify identify = new Identify(test.getUserName(), test.getUserpwd());
Session session = Session.getDefaultInstance(properties,identify);
session.setDebug(true);
Message message = new MimeMessage(session);
Address address = new InternetAddress(test.getFormAddress());
message.setFrom(address);
message.setSubject(test.getSubject());
message.setSentDate(new Date());
if (null != test.getFormAddress() && test.getToAddress().size() > 0) {
Address[] addresses = new Address[test.getToAddress().size()];
for (int i = 0; i < test.getToAddress().size(); i++) {
Address address1 = new InternetAddress(test.getToAddress().get(i));
addresses[i] = address;
message.setRecipients(Message.RecipientType.TO, addresses);
}
}
MimeMultipart mimeMultipart = new MimeMultipart();
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent(test.getContent(), "text/html;charset=UTF-8");
mimeMultipart.addBodyPart(mimeBodyPart);
List<String> list = test.getAttachFilename();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
File file = new File(list.get(i));
if (file.exists()) {
MimeBodyPart attachBody = new MimeBodyPart();
DataHandler dataHandler = new DataHandler(new FileDataSource(file));
attachBody.setDataHandler(dataHandler);
attachBody.setFileName(MimeUtility.encodeText(dataHandler.getName()));
mimeMultipart.addBodyPart(attachBody);
}
}
}
message.setContent(mimeMultipart);
Transport.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.xxx;
import com.xxx.Service.ImpleMethods;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Author 陈平安
* @Date 2022/6/24 9:32
* @PackageName:com.xxx
* @ClassName: Test01
* @Description: TODO
* @Version 1.0
*/
public class Test01 {
public static void main(String[] args) {
BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml");
ImpleMethods impleMethods = (ImpleMethods) beanFactory.getBean("impleMethods");
impleMethods.MailMethods();
}
}
package com.xxx;
import com.xxx.Service.ImpleMethods;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.MailSender;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
/**
* @Author 陈平安
* @Date 2022/6/24 9:32
* @PackageName:com.xxx
* @ClassName: Test01
* @Description: TODO
* @Version 1.0
*/
public class Test02 {
public static void main(String[] args) throws MessagingException {
BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml");
// ImpleMethods impleMethods = (ImpleMethods) beanFactory.getBean("impleMethods");
// impleMethods.MailMethods();
// MailSender mailSender =
JavaMailSender mailSender = (JavaMailSender) beanFactory.getBean("mailSender");
MimeMessage message= mailSender.createMimeMessage();
message.setSubject("hello--");
MimeMessageHelper helper = new MimeMessageHelper(message,true,"UTF-8");
helper.setTo("3550462027@qq.com");
helper.setFrom("3550462027@qq.com");
helper.setText("tefger");
File file = new File("C:\\Users\\Lenovo\\Desktop\\新建文本文档.txt");
helper.addAttachment(file.getName(),file);
mailSender.send(message);
}
}