目录
准备工作
登录想要发送邮件的邮箱并开启SMTP服务确保为以下状态!!!!
获取授权密码,切记赶快保存,只会显示一次!!!
自己导入一个javax.mail的jar包!!
自己去去找,因为我不知道咋上传!!
准备工作结束,以下将是代码模块!!!
创建Session会话,因为可能经常会用到,可以创建一个工具类,方便使用时调用!!
创建Session的工具类
public static Session createSession(){
//邮箱账号信息
String username = "xxxxxxxxxx@163.com";//邮箱发送账号
String password ="xxxxxxxxx";//账号授权密码
//SMTP服务器连接信息
Properties props =new Properties();
props.put("mail.smtp.host","smtp.163.com");//SMTP主机名
props.put("mail.smtp.port","25");//主机端口号
props.put("mail.smtp.auth","true");//是否需要用户认证
props.put("mail.smtp.starttls.enable","true");//启动TLS加密
/**
* 创建Session会话
* 参数一:smtp服务器连接参数
* 参数二:账号和密码的授权认证对象
*/
Session session =Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
return session;
}
发送普通文字邮件
try {
//1.创建Session会话
Session session = JavaMailUtils.createSession();
//2.创建邮件对象
MimeMessage message = new MimeMessage(session);
message.setSubject("别害怕,这是一份测试邮件!!!");//设置邮件标题
message.setText("你好?");//设置邮件正文
//如果需要使用html标签 需如下设置
// message.setText("<b>你好!!</b>","utf-8","html");
message.setFrom(new InternetAddress("xxxxxxxx@163.com"));//发送邮件人账号
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxxxxxxxx@qq.com"));//被发送人邮件账号
//注意:如果想要添加抄送人 需增加以下代码
// message.setRecipients(Message.RecipientType.CC,
// new InternetAddress[]{
// new InternetAddress("xxxxxxxx@qq.com"),
// new InternetAddress("xxxxxxxx@qq.com"),
// new InternetAddress("xxxxxxxx@qq.com")
// });
//3.发送邮件
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
发送带有图片附件的邮件
try {
//1.创建Session会话
Session session = JavaMailUtils.createSession();
//2.创建MineMessage邮件对象
MimeMessage message =new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxxxxx@163.com"));//发件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("xxxxxxx@qq.com"));//收件人
message.setRecipients(Message.RecipientType.CC, new InternetAddress[]{
new InternetAddress("xxxxxxxx@qq.com"),
new InternetAddress("xxxxxxxxx@qq.com")});//抄送人
message.setSubject("还有更好康的图片!!");//标题
//正文
BodyPart textPart = new MimeBodyPart();
textPart.setContent("好康的!","text/html;charset=utf-8");
//附件
BodyPart filePart = new MimeBodyPart();
filePart.setFileName("很好康的图片");//附件名称
//上传附件文件
filePart.setDataHandler(
new DataHandler(
new ByteArrayDataSource(
Files.readAllBytes(Paths.get("C:\\Users\\cc\\Desktop\\IMG_20221028_233825.jpg")),
"application/octet-stream")));
//将正文+附件组装成Multipart对象
Multipart multipart =new MimeMultipart();
multipart.addBodyPart(textPart);
multipart.addBodyPart(filePart);
//将Multipart对象放入邮件
message.setContent(multipart);
//3.发送邮件
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
将图片直接显示在正文中
try {
//1.创建Session会话
Session session = JavaMailUtils.createSession();
//2.创建MineMessage邮件对象
MimeMessage message =new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxxxxx@163.com"));//发件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("xxxxxxx@qq.com"));//收件人
message.setRecipients(Message.RecipientType.CC, new InternetAddress[]{
new InternetAddress("xxxxxxxx@qq.com"),
new InternetAddress("xxxxxxxxx@qq.com")});//抄送人
message.setSubject("还有更好康的图片!!");//标题
//正文
BodyPart textPart = new MimeBodyPart();
StringBuilder contentText = new StringBuilder();
contentText.append("<p>好康的!!</p>");
contentText.append("<img src=\"cid:aaa\"/>");//aaa要与下面的aaa对应
textPart.setContent(contentText.toString(),"text/html;charset=utf-8");
//上传附件
BodyPart imgPart = new MimeBodyPart();
imgPart.setDataHandler(
new DataHandler(
new ByteArrayDataSource(
Files.readAllBytes(Paths.get("C:\\Users\\cc\\Desktop\\3b5d3.jpeg")),
"application/octet-stream")));
imgPart.setHeader("Content-ID","aaa");//aaa要与上面的aaa对应
//上传附件文件
filePart.setDataHandler(
new DataHandler(
new ByteArrayDataSource(
Files.readAllBytes(Paths.get("C:\\Users\\cc\\Desktop\\33825.jpg")),
"application/octet-stream")));
//将正文+附件组装成Multipart对象
Multipart multipart =new MimeMultipart();
multipart.addBodyPart(textPart);
multipart.addBodyPart(filePart);
//将Multipart对象放入邮件
message.setContent(multipart);
//3.发送邮件
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}