Java发送邮件
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.Date;
import java.util.Properties;
/**
* 发送qq邮箱工具类
* @author 郑洁文
*/
public class SendMailUtils {
private static String host="";//邮箱服务器
private static String sendUser="*********@";//发件人邮箱
private static String sendPassWord="*******";//发件人授权码
/**
* @Title sendEmail
* @description 发送邮件
* @author 郑洁文
* @date 2022年10月10日 下午18:10
* @param toUser 被发送的qq邮箱地址
*/
public static void sendEmail(String toUser) {
try {
//用于连接邮件服务器的参数配置(发送邮件时才需要用到)
Properties props = new Properties();
//创建参数配置, 用于连接邮件服务器的参数配置
props.setProperty("", "true"); // 开启debug调试
props.setProperty("", "true"); // 发送服务器需要身份验证
props.setProperty("", host); // 设置邮件服务器主机名
props.setProperty("", "smtp"); // 发送邮件协议名称
/*
* PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),
* 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,
* 打开下面的注释代码, 开启 SSL 安全连接。
* SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,
* 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,
* QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)
*
String smtpPort = "465";
("", smtpPort);//端口号
("", "true");//加认证机制*/
// 设置环境信息
Session session= Session.getInstance(props); // 根据参数配置,创建会话对象(为了发送邮件准备的)
//(true); //开启debug调试
Message msg = new MimeMessage(session); // 创建邮件对象
/*
* 也可以根据已有的eml邮件文件创建 MimeMessage 对象
* MimeMessage message = new MimeMessage(session, new FileInputStream(""));
*/
// 设置邮件内容
msg.setSubject(emailSubject()); //设置邮件标题
// 设置邮件内容
msg.setText(emailContent());
//("这是一封由JavaMail发送的邮件!","text/html;charset=GBK");
msg.setSentDate(new Date());// 设置发送时间
// 设置发件人
msg.setFrom(new InternetAddress(sendUser));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(toUser));// 设置收件人地址
msg.saveChanges();//保存设置
Transport transport = session.getTransport("smtp");
// 连接邮件服务器
transport.connect(host,sendUser,sendPassWord);
//(msg, new Address[] {new InternetAddress(toUser)});
transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));// 发送邮件
transport.close();// 关闭连接
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
/**
* 获取邮件的标题
* @return
*/
public static String emailSubject() {
String subject="邮件的标题";
return subject;
}
/**
* 获取邮件的内容
* @return
*/
public static String emailContent() {
String content="邮件的内容!";
return content;
}
}