`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.创建一个程序与邮件服务器会话对象 SessionProperties 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邮箱为例 只有个人邮箱才有 企业邮箱没有第三方授权码 只需要密码就行)




**java 发送邮件**相关推荐

  1. 用java发送邮件(黄海已测试通过)

    /*** java发送带附件的邮件* 周枫* 2013.8.10*/ package com.dsideal.Util; import javax.mail.*; import javax.mail. ...

  2. Java发送邮件(带附件)

    实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...

  3. 手把手教你实现Java发送邮件(1)-发送简单的文本

    说明:本博客已经收藏至我的gitee中的code_demo仓库(点击此链接跳转)中,且gitee中有相应的代码~ 欢迎访问~~ 不仅仅是code,还有一些通俗的讲解哦~ 文章目录 一.Java实现邮件 ...

  4. 手把手教你用java发送邮件

    手把手教你用java发送邮件 一.学习目的 1.学会用jmail发送邮件 2.学会自动发送邮件需要的一些设置 二.准备内容(以163邮箱示范) 1.个人邮箱 首先登录163个人邮箱,然后在个人页面-设 ...

  5. 简易的定时发送生日邮件功能(Listener+定时器+使用java发送邮件)

    实现功能主要技术点: Listener(监听器) 使用Java发送邮件(JavaMail的使用) 代码示例 创建web工程,写一个监听器监听ServletContext对象的创建(创建时机:启动服务器 ...

  6. 【Java学习笔记】38.Java 发送邮件

    Java 发送邮件 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) . 您 ...

  7. java 发送邮件和读取邮件(163邮箱为例)

    1,发送邮件 (1)在设置里面打开163邮箱的smtp.pop3,设置授权码 (2)在引用pom.xml中引用mail.jar <dependency > <groupId > ...

  8. Java发送邮件时标题和发件人乱码

    最近碰到一个问题,Java发送邮件时,本地没有问题,测试服务器也没问题,但上线后邮件的标题和发件人乱码,正文OK 通过翻阅资料,原因及解决方法如下: 原因: 当一段 Text 或者 HTML 通过电子 ...

  9. Java发送邮件中文乱码问题

    使用Java发送邮件,会出现在windows环境中无任何问题,在linux环境中会出现标题.或者附件名称中文乱码问题.可以在程序中加入下面代码块解决. static {// 解决邮件标题.附件名称中文 ...

  10. Java发送邮件详解

    Java发送邮件详解 本期我们学习Java如何发送邮件,Java发送邮件是以后工作较为常用的一个Java技能,想Web的邮箱验证.邮件提醒等功能,后期我也会编写一个教务的成绩提醒系统,其中,提醒的功能 ...

最新文章

  1. iView 近期的更新,以及那些“不为人知”的故事
  2. spoj 8222 Substrings (后缀自动机)
  3. pci驱动与硬件通信
  4. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
  5. TCP/IP通信程序设计方式
  6. c语言linux TCP长连接 socket收发范例 断开自动重连
  7. Struts2(补充)
  8. 各位学Python的要小心了!!!
  9. Excel的窗口如何冻结与拆分?
  10. 正则表达式的例题分析
  11. 离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
  12. REST Assured 使用详解
  13. Paper翻译:《A Novel Convolutional Neural Network Based Model for Recognition and Classification of App》
  14. 测试窗体的FormBorderStyle属性,不同属性所对应的窗体边框显示情况
  15. 微信小程序实现保存图片(唤起用户授权)
  16. TMS570捕获多路PWM的可行性
  17. 反欺诈概念库-虚拟银行卡
  18. git-使用staf暂存分支
  19. Algorithm算法
  20. 深度学习中的BN_CBN_CmBN

热门文章

  1. 人工智能第二章——Agent(附JADE开发包及源码+Agent相关PPT)
  2. mysql有cte吗_MySQL8 以上的 CTE
  3. OpenCV-Python相机标定
  4. 微信免费电子名片哪里有
  5. (css)修改icon图标大小
  6. 非监督学习: K 均值聚类(原理、步骤、优缺点、调优)
  7. MATLAB中波浪线的作用
  8. ryzen linux 搭配显卡,AMD 锐龙 Ryzen7 1700X配什么显卡最为均衡合理?
  9. 基于组态王组态锅炉控制系统研究与仿真控制
  10. php正则屏蔽问号,正则表达式里问号的作用