**java 发送邮件**

`java 发送邮件

package com.utils;


import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SendEmailByQQ {
    public static void sendEmail(String email, String emailMsg ) throws AddressException, MessagingException, Exception {

             /*

              * 1、创建连接对象

              * 2、创建邮件对象

              * 3、发送邮件

              */

             // 1.创建一个程序与邮件服务器会话对象 Session
     	    Properties props= new Properties();

            props.put("mail.transport.protocol" , "smtp");

            props.put("mail.smtp.host", "smtp.qq.com");

            props.put("mail.smtp.auth", "true");

            props.put("mail.smtp.port", 465);

            props.put("mail.smtp.ssl.enable", "true");
             // 验证账号及密码,密码需要是第三方授权码
             Authenticator auth = new Authenticator() {
                 public PasswordAuthentication getPasswordAuthentication() {
                     return new PasswordAuthentication("xxxxx.com", "第三方授权码");//个人邮箱是第三方授权码  企业邮箱就是直接输入密码password
                 }
             };
             Session session = Session.getInstance(props, auth);
             //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
                   session.setDebug(true);
                    //2、通过session得到transport对象
              Transport ts = session.getTransport();
             // 2.创建一个Message,它相当于是邮件内容
             Message message = new MimeMessage(session);
             // 设置发送者
             message.setFrom(new InternetAddress("xxxxx.com"));
             // 设置发送方式与接收者
             message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(email));
             // 设置主题
             message.setSubject("邮件发送测试");
             // 设置内容
            
            

             
             StringBuilder emailContent= new StringBuilder("<!DOCTYPE html>\r\n" + 
             		"<html>\r\n" + 
             		"<head>\r\n" + 
             		"  <meta charset='UTF-8'>\r\n" + 
             		"  <title>快来买桃子</title>\r\n" + 
             		"  <style type='text/css'>\r\n" + 
             		"  .container {\r\n" + 
             		"    font-family: 'Microsoft YaHei';\r\n" + 
             		"    width: 600px;\r\n" + 
             		"    margin: 0 auto;\r\n" + 
             		"    padding: 8px;\r\n" + 
             		"    border: 3px dashed #db303f;\r\n" + 
             		"    border-radius: 6px;\r\n" + 
             		"  }\r\n" + 
             		"\r\n" + 
             		"  .title {\r\n" + 
             		"    text-align: center;\r\n" + 
             		"    color: #db303f;\r\n" + 
             		"  }\r\n" + 
             		"\r\n" + 
             		"  .content {\r\n" + 
             		"    text-align: justify;\r\n" + 
             		"    color: #717273;\r\n" + 
             		"    font-weight: 600;\r\n" + 
             		"  }\r\n" + 
             		"  .list {\r\n" + 
             		"    list-style: none;\r\n" + 
             		"  }\r\n" + 
             		"  footer {\r\n" + 
             		"    text-align: right;\r\n" + 
             		"    color: #db303f;\r\n" + 
             		"    font-weight: 600;\r\n" + 
             		"    font-size: 18px;\r\n" + 
             		"  }\r\n" + 
             		"\r\n" + 
             		"</style>\r\n" + 
             		"</head>\r\n" + 
             		"<body>\r\n" + 
             		"<div class='container'><h2 class='title'>简历</h2>\r\n" + 
             		"  <p class='content'>简历信息。</p >\r\n" + 
             		"  <img src='cid:attach' style='width: 40px;height: 40px;'/>\r\n" + 
             		"  <div class=\"list\">\r\n" + 
             		"    <span>真实姓名 | 女 | 25岁</span>\r\n" + 
             		"    <span>深圳-南山区 | 3年工作经验</span>\r\n" + 
             		"    <span>1564515656</span>\r\n" + 
             		"    <span>2116165</span>\r\n" + 
             		"    <span>状态</span>\r\n" + 
             		"    <span>深圳</span>\r\n" + 
             		"    <span>党员</span>\r\n" + 
             		"    <span>嘿嘿</span>\r\n" + 
             		"  </div>\r\n" + 
             		"  <footer>联系人:11110000</footer>\r\n" + 
             		"</div>\r\n" + 
             		"</body>\r\n" + 
             		"</html>");
             
             
             // 5. 创建图片“节点”
             MimeBodyPart image = new MimeBodyPart();
             DataHandler dh = new DataHandler(new FileDataSource(new File("E:\\1.jpg"))); // 读取本地文件
             image.setDataHandler(dh);   
//             image.setHeader("Content-ID","<attach>");
//             image.setHeader("Content-Type", "image/png");
             image.setDisposition(MimeBodyPart.INLINE);
             image.setContentID("attach");     // 为“节点”设置一个唯一编号(在文本“节点”将引用该ID)
//             image.setFileName("attach.png");
             MimeBodyPart text = new MimeBodyPart();
             text.setContent(emailContent.toString(), "text/html;charset=UTF-8");
             
             MimeMultipart mm = new MimeMultipart();
             mm.addBodyPart(text);
            mm.addBodyPart(image);
             mm.setSubType("related");    // 关联关系     

             message.setContent(mm);
             message.saveChanges();
//             message.writeTo(new FileOutputStream("E:\\ImageMail.eml"));
             // 3.创建 Transport用于将邮件发送
             ts.send(message,message.getAllRecipients());
             ts.close();
      }
}

测试调用

package com.utils;

import javax.mail.MessagingException;
import javax.mail.internet.AddressException;

public class TestEmailByQQ {
	 public static void main(String[] args) throws AddressException,MessagingException, Exception {
		 SendEmailByQQ.sendEmail("接受人邮箱", "测试");
	 }
}

结果发送显示
在这里插入图片描述
如何设置个人邮箱第三方授权码(以qq邮箱为例 只有个人邮箱才有 企业邮箱没有第三方授权码 只需要密码就行)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值