POM.XML
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.4</version>
</dependency>
授权码需要主动到邮箱中获取
注意:如果遇到该代码在Windows环境下 好用 ,而到了linux 环境下报
com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;
出现了这种错误的话,我们需要将端口改下 :
//1、连接邮件服务器的参数配置
Properties props = new Properties();
//在这个地方将端口改为 465
props.setProperty("mail.smtp.port", "465");
props.put("mail.smtp.ssl.enable", "true");
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class test{
//收件人地址用逗号分割
public static String address = "***@qq.com,***@qq.com";
public static void main(String[] args) throws Exception {
//1、连接邮件服务器的参数配置
Properties props = new Properties();
//设置用户的认证方式
props.setProperty("mail.smtp.auth", "true");
//设置传输协议
props.setProperty("mail.transport.protocol", "smtp");
//设置发件人的SMTP服务器地址
props.setProperty("mail.smtp.host", "smtp.163.com");
//2、创建定义整个应用程序所需的环境信息的 Session 对象
Session session = Session.getInstance(props);
//3、创建邮件的实例对象
Message msg = getMimeMessage(session);
//4、根据session对象获取邮件传输对象Transport
Transport transport = session.getTransport();
//设置发件人的账户名和授权码
transport.connect("账户名", "授权码");
//发送邮件,并发送到所有收件人地址,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
transport.sendMessage(msg,msg.getAllRecipients());
//5、关闭邮件连接
transport.close();
System.out.println("发送完成");
}
/**
* 创建邮件的实例对象
* @param session
* @return
*/
public static MimeMessage getMimeMessage(Session session) throws Exception{
//创建一封邮件的实例对象
MimeMessage msg = new MimeMessage(session);
//设置发件人地址
msg.setFrom(new InternetAddress("账户名"));
//收件人用,分割
String[] strings = address.split(",");
InternetAddress[] internetAddresses = new InternetAddress[strings.length];
for (int i = 0; i < strings.length; i++) {
internetAddresses[i] = new InternetAddress(strings[i]);
}
/**
* MimeMessage.RecipientType.TO:发送
* MimeMessage.RecipientType.CC:抄送
* MimeMessage.RecipientType.BCC:密送
*/
msg.setRecipients(MimeMessage.RecipientType.TO,internetAddresses);
//设置邮件主题
msg.setSubject("邮箱主题","UTF-8");
//设置邮件正文
msg.setContent("我是helloword", "text/html;charset=UTF-8");
return msg;
}
}