链接:https://blog.csdn.net/qq_41151659/article/details/96475739

代码如下:

import com.sun.mail.util.MailSSLSocketFactory;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties; public class SendImageEmail {
public static void main(String[] args) throws Exception { Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com"); //// 设置QQ邮件服务器
prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码 // 关于QQ邮箱,还要设置SSL加密,加上以下代码即可
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf); //使用JavaMail发送邮件的5个步骤 //1、创建定义整个应用程序所需的环境信息的 Session 对象
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、授权码
return new PasswordAuthentication("545646733@qq.com", "授权码");
}
}); //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true); //2、通过session得到transport对象
Transport ts = session.getTransport(); //3、使用邮箱的用户名和授权码连上邮件服务器
ts.connect("smtp.qq.com", "545646733@qq.com", "授权码"); //4、创建邮件 //创建邮件
MimeMessage message = new MimeMessage(session); // 设置邮件的基本信息
//发件人
message.setFrom(new InternetAddress("545646733@qq.com"));
//收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("545646733@qq.com"));
//邮件标题
message.setSubject("带图片的邮件"); // 准备邮件数据 // 准备图片数据
MimeBodyPart image = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("src/resources/bz.jpg"));
image.setDataHandler(dh);
image.setContentID("bz.jpg"); // 准备正文数据
MimeBodyPart text = new MimeBodyPart();
text.setContent("这是一封邮件正文带图片<img src='cid:bz.jpg'>的邮件", "text/html;charset=UTF-8"); // 描述数据关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related"); //设置到消息中,保存修改
message.setContent(mm);
message.saveChanges(); //5.发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
}

  

import com.sun.mail.util.MailSSLSocketFactory;
import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import java.util.Properties;
public class SendImageEmail {    public static void main(String[] args) throws Exception {
        Properties prop = new Properties();        prop.setProperty("mail.host", "smtp.qq.com"); //// 设置QQ邮件服务器        prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议        prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
        // 关于QQ邮箱,还要设置SSL加密,加上以下代码即可        MailSSLSocketFactory sf = new MailSSLSocketFactory();        sf.setTrustAllHosts(true);        prop.put("mail.smtp.ssl.enable", "true");        prop.put("mail.smtp.ssl.socketFactory", sf);
        //使用JavaMail发送邮件的5个步骤
        //1、创建定义整个应用程序所需的环境信息的 Session 对象        Session session = Session.getDefaultInstance(prop, new Authenticator() {            public PasswordAuthentication getPasswordAuthentication() {                //发件人邮件用户名、授权码                return new PasswordAuthentication("545646733@qq.com", "授权码");            }        });

//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态        session.setDebug(true);
        //2、通过session得到transport对象        Transport ts = session.getTransport();
        //3、使用邮箱的用户名和授权码连上邮件服务器        ts.connect("smtp.qq.com", "545646733@qq.com", "授权码");
        //4、创建邮件
        //创建邮件        MimeMessage message = new MimeMessage(session);
        // 设置邮件的基本信息        //发件人        message.setFrom(new InternetAddress("545646733@qq.com"));        //收件人        message.setRecipient(Message.RecipientType.TO, new InternetAddress("545646733@qq.com"));        //邮件标题        message.setSubject("带图片的邮件");
        // 准备邮件数据
        // 准备图片数据        MimeBodyPart image = new MimeBodyPart();        DataHandler dh = new DataHandler(new FileDataSource("src/resources/bz.jpg"));        image.setDataHandler(dh);        image.setContentID("bz.jpg");
        // 准备正文数据        MimeBodyPart text = new MimeBodyPart();        text.setContent("这是一封邮件正文带图片<img src='cid:bz.jpg'>的邮件", "text/html;charset=UTF-8");
        // 描述数据关系        MimeMultipart mm = new MimeMultipart();        mm.addBodyPart(text);        mm.addBodyPart(image);        mm.setSubType("related");
        //设置到消息中,保存修改        message.setContent(mm);        message.saveChanges();
        //5.发送邮件        ts.sendMessage(message, message.getAllRecipients());        ts.close();    }}

(二)JavaMail创建包含内嵌图片的邮件的更多相关文章

  1. 使用MailKit发送带有内嵌图片的邮件且图片不显示成附件

    使用MailKit发送带有内嵌图片的邮件且图片不显示成附件 参考文章:MailKit---发送邮件 注意 在邮件客户端中是否显示内嵌图片为附件依据不同邮件有所不同,暂经测试Outlook和qq不显示为 ...

  2. Spring 发送内嵌图片的邮件 遇到的问题

    问题1:spring 发送带图片的html格式的邮件? 解决方法1:直接在发送内容里面添加 <img src="http://www.rgagnon.com/images/jht.gi ...

  3. java发送内嵌图片邮件

    前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/huj ...

  4. 原生js实现tab选项卡里内嵌图片滚动特效代码

    <!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8&quo ...

  5. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌图片:自己的图片控件

    代码: using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ...

  6. android EditText内嵌图片

    如下所示: 主要用到的属性:android:drawableLeft <EditText android:layout_width="match_parent" androi ...

  7. 二、小程序内嵌Html基础格式说明

    1.index.js文件更改 var WxParse = require('../../wxParse/wxParse.js'); Page({ data: { }, onLoad: function ...

  8. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...

  9. (转载)JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4216311.html 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封 ...

随机推荐

  1. Windows系统下curl的下载和配置

    curl的下载和配置 简介:用URL规则在命令行下工作的文件传输工具. 下载:下载地址为 https://curl.haxx.se/download.html,在最底部找到Windows的版本,我下载 ...

  2. 树形DP基础题 HDU1520

    Anniversary party Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  3. .Net基础之2——C#基础

    1.注释符的作用   1).注销                  2).解释 2.C#中的3种解释符 1).单行注释(//要注释的内容) //这行代码的作用是将hello world输出到控制台上 ...

  4. eatwhatApp开发实战(九)

    之前我们为app在item项上添加了点击出现修改对话框,对店名进行修改的功能,其中我们会发现我们点击item和点击item上的按钮会有点击冲突.这次我们来修正下这个问题,同时介绍item项的长按点击O ...

  5. This的关键字的使用

    this: 1.可以用来修饰属性  方法 构造器 2.this理解为当前对象或当前正在创建的对象. 3.可以在构造器中通过this()形参的方式显示的调用本类中其他重载的指定的构造器 要求: 在构造器 ...

  6. pandas 小技巧

    1.找出某个字段包含某字符串的行: my_df[my_df['col_B'].str.contains('大连') > 0]或者 my_df[my_df['col_B'].apply(lambd ...

  7. parrot os的一些坑

    burpsuite 破解版的运行环境需要jdk8,jdk11无法运行 选择jdk环境 update-alternatives --config java 截图工具 sudo apt install f ...

  8. jchdl进展 - 20180918

    这几天看了下SystemC,发现与jchdl相似的地方,或者jchdl与之相似的地方. 但总体而言: 1. jchdl的模型更简单,更清晰: 2. jchdl还有一些建模需要的工具需要补充,比如: i ...

  9. (Java实现) 洛谷 P1025 数的划分

    题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1. 问有多少种不同的分法. 输 ...

  10. java实现第四届蓝桥杯有理数类

    有理数类 题目描述 有理数就是可以表示为两个整数的比值的数字.一般情况下,我们用近似的小数表示.但有些时候,不允许出现误差,必须用两个整数来表示一个有理数. 这时,我们可以建立一个"有理数类 ...