Java中为了完成验证操作,需要给邮箱中发送验证码操作
本地以新浪邮箱为例,给QQ邮箱发送一封带附件的验证邮件测试信息
首先需要登录新浪邮箱,打开服务器设置:全部选择开启状态
/**
* 发送带附件的邮件
* @param from 发件人
* @param to 收件人
* @param host SMTP服务器地址
* @param title 邮件主题
* @param content 邮件内容
* @param password 发件人邮箱登录密码
* @param filePath 附件文件本地路径+名称
*/
public void sendMultipartMail(String from,String to,String host,String title,String content,String filePath,String password){
final String userName = from;
final String pwd = password;
try {
//1、创建配置信息对象
Properties props = new Properties();
props.setProperty("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");//配置邮箱服务器的认证
//2、获取连接邮箱服务器的session对象,设置发件人的邮箱账号和密码
Session session = Session.getDefaultInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, pwd);
}
});
//3、封装邮件信息对象
MimeMessage mess = new MimeMessage(session);
//设置发件人地址
mess.setFrom(new InternetAddress(from));
//设置收件人地址,同时发多人
mess.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));
//设置主题
mess.setSubject(title);
//设置邮件内容,发送文本邮件
//mess.setText("恭喜您注册成功");
//设置邮件内容,发送HTML格式的邮件
mess.setContent(content, "text/html;charset=utf-8");
// 创建消息部分
BodyPart messageBodyPart = new MimeBodyPart();
// 消息
messageBodyPart.setText("JDBC学习笔记");
// 创建多重消息
Multipart multipart = new MimeMultipart();
// 设置文本消息部分
multipart.addBodyPart(messageBodyPart);
// 附件部分
messageBodyPart = new MimeBodyPart();
// String filename = "E:\\JDBC学习笔记.docx";
DataSource source = new FileDataSource(filePath);
messageBodyPart.setDataHandler(new DataHandler(source));
// messageBodyPart.setFileName(filename);
messageBodyPart.setFileName(MimeUtility.encodeWord(filePath));
multipart.addBodyPart(messageBodyPart);
// 发送完整消息
mess.setContent(multipart );
//发送邮件
Transport.send(mess);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("邮件发送异常,发送失败!");
}
}
public static void main(String[] args) {
/*MailSendUtil mail = new MailSendUtil();
mail.sendMail();*/
String from = "139********@sina.cn";
String to = "********@qq.com";
String pwd = "**********";
String title = "测试";
String content= "这是一份测试邮件";
String host = "smtp.sina.com";
String filePath = "E:\\01.jpg";
MailSendUtil mail = new MailSendUtil();
//mail.sendHtmlMail(from, to, host, title, content, pwd);
mail.sendMultipartMail(from, to, host, title, content,filePath, pwd);
}