pom.xml, 不要有其他的邮件相关包, 以免冲突。
<dependency >
<groupId >com.sun.mail </groupId >
<artifactId >javax.mail </artifactId >
<version >1.5.4 </version >
</dependency >
代码: 不要直接拷贝运行, 看看里面的注释!!!!!
import javax.mail.Address;
import javax.mail.Message;
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.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.util.*;
public class EmailService {
public static void main(String[] args){
EmailService service = new EmailService();
service.sendEmail();
}
public void sendEmail() {
String MAIL_SERVER_HOST = "smtp.qq.com"; // !!!邮件服务器 qq服务器是 "smtp.qq.com", 其他邮件服务器看具体情况,可以去自己邮箱设置里面去查找,如果用公司内网服务器,那可能是具体的一个内网ip
String USER = "user"; // 发件人账号 !!! 一般用户名跟发件人地址是一样的。也可能不一样,比如说公司内部的公用邮箱账号就可能指定一个不同的账户名。
String PASSWORD = "pswd"; //发件人密码 !!! 如果是qq邮箱, 此密码是授权码,授权码可以去qq邮箱获取,网上有教程。
String MAIL_FROM = "yyyyy@qq.com"; // 发件人地址
String MAIL_TO = "xxxxx@qq.com"; // 收件人地址, 发送多人的话用逗号隔开
String[] files = new String[]{"xxxx","xxx"}; // 发送的附件, 文件路径名,可以多个。
String SUBJECT = "subject"; // 邮件主题
String CONTENT = "content"; // 邮件内容
Properties prop = new Properties();
prop.setProperty("mail.debug", "true");
prop.setProperty("mail.host", MAIL_SERVER_HOST);
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.starttls.enable", "true");
try {
Session session = Session.getInstance(prop);
Transport ts = session.getTransport();
ts.connect(MAIL_SERVER_HOST, USER, PASSWORD);
MimeMessage message = new MimeMessage(session);
MimeBodyPart text = new MimeBodyPart();
text.setContent(CONTENT, "text/html;charset=UTF-8");
MimeMultipart mm = new MimeMultipart();
mm.setSubType("related");
mm.addBodyPart(text);
for(String filename : files) {
MimeBodyPart attachPart = new MimeBodyPart();
attachPart.attachFile(filename);
mm.addBodyPart(attachPart);
}
message.setContent(mm);
message.saveChanges();
message.setSubject(SUBJECT);
message.setFrom(new InternetAddress(MAIL_FROM));
message.setRecipients(Message.RecipientType.TO, MAIL_TO); // 发送多人
// message.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO)); // 发送单人
// message.setRecipient(Message.RecipientType.CC, new InternetAddress(MAIL_CC)); // 邮件的抄送人
// message.setRecipient(Message.RecipientType.BCC, new InternetAddress(MAIL_BCC)); // 邮件的密送人
// message.setText("Content");
ts.sendMessage(message, message.getAllRecipients());
ts.close();
System.out.println("邮件发送成功");
}catch (Exception e){
e.printStackTrace();
}
}
}