发送文件的项目地址(free):https://download.csdn.net/download/qq_36474549/10741073

导入jar包:activation-1.1.jar   javax.mail-1.6.2.jar

内容:1.发送一封只包含文本的简单邮件    SendEmail_text.java

2.发送包含内嵌图片的邮件     SendEmail_photo.java

3.发送包含附件的邮件     SendEmail_attachments.java

4.发送包含内嵌图片和附件的复杂邮件     SendEmail_Photo_Attachments.java

1. 发送一封只包含文本的简单邮件

package cn.wz.util;import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;/*** @ClassName: Sendmail* @Description: 发送一封只包含文本的简单邮件*/
public class SendEmail_text {private static String mailFrom = null;// 指明邮件的发件人private static String password_mailFrom = null;// 指明邮件的发件人登陆密码private static String mailTo = null; // 指明邮件的收件人private static String mailTittle = null;// 邮件的标题private static String mailText =null;  // 邮件的文本内容private static String mail_host =null;   // 邮件的服务器域名public static void main(String[] args) throws Exception {mailFrom = "test1@wz.com";password_mailFrom="test";mailTo = "test2@xk.com";mailTittle="节日快乐2!";mailText = "这是一个简单的邮件";mail_host="wz.com";Properties prop = new Properties();prop.setProperty("mail.host", mail_host);prop.setProperty("mail.transport.protocol", "smtp");prop.setProperty("mail.smtp.auth", "true");// 使用JavaMail发送邮件的5个步骤// 1、创建sessionSession session = Session.getInstance(prop);// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态session.setDebug(true);// 2、通过session得到transport对象Transport ts = session.getTransport();// 3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。ts.connect(mail_host,mailFrom, password_mailFrom);// 4、创建邮件Message message = createSimpleMail(session,mailFrom,mailTo,mailTittle,mailText);// 5、发送邮件ts.sendMessage(message, message.getAllRecipients());ts.close();}/*** @Method: createSimpleMail* @Description: 创建一封只包含文本的邮件*/public static MimeMessage createSimpleMail(Session session, String mailfrom, String mailTo, String mailTittle,String mailText) throws Exception {// 创建邮件对象MimeMessage message = new MimeMessage(session);// 指明邮件的发件人message.setFrom(new InternetAddress(mailfrom));// 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));// 邮件的标题message.setSubject(mailTittle);// 邮件的文本内容message.setContent(mailText, "text/html;charset=UTF-8");// 返回创建好的邮件对象return message;}
}

2.发送包含内嵌图片的邮件

package cn.wz.util;import java.io.FileOutputStream;
import java.util.Properties;import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;/*** @Description: 发送包含内嵌图片的邮件*/
public class SendEmail_photo {private static String mailFrom = null;// 指明邮件的发件人private static String password_mailFrom = null;// 指明邮件的发件人登陆密码private static String mailTo = null; // 指明邮件的收件人private static String mailTittle = null;// 邮件的标题private static String mailText = null; // 邮件的文本内容private static String mail_host = null; // 邮件的服务器域名private static String photoSrc = null; // 发送图片的路径public static void main(String[] args) throws Exception {mailFrom = "test1@wz.com";password_mailFrom = "test";mailTo = "test2@wz.com";mailTittle = "带图片的邮件";mailText = "这是一封邮件正文带图片的邮件";mail_host = "wz.com";photoSrc = "resource\\images\\3.jpg";Properties prop = new Properties();prop.setProperty("mail.host", mail_host);// 需要修改prop.setProperty("mail.transport.protocol", "smtp");prop.setProperty("mail.smtp.auth", "true");// 使用JavaMail发送邮件的5个步骤// 1、创建sessionSession session = Session.getInstance(prop);// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态session.setDebug(true);// 2、通过session得到transport对象Transport ts = session.getTransport();// 3、连上邮件服务器,需要发件人提供邮箱的用户名和密码进行验证ts.connect(mail_host, mailFrom, password_mailFrom);// 需要修改// 4、创建邮件Message message = createImageMail(session);// 5、发送邮件ts.sendMessage(message, message.getAllRecipients());ts.close();}/*** @Method: createImageMail* @Description: 生成一封邮件正文带图片的邮件* @param session* @return* @throws Exception*/public static MimeMessage createImageMail(Session session) throws Exception {// 创建邮件MimeMessage message = new MimeMessage(session);// 设置邮件的基本信息message.setFrom(new InternetAddress(mailFrom)); // 发件人message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo)); // 收件人// 邮件标题message.setSubject(mailTittle);// 准备邮件数据// 准备邮件正文数据MimeBodyPart text = new MimeBodyPart();text.setContent(mailText + "<img src='cid:xxx.jpg'>", "text/html;charset=UTF-8");// 需要修改// 准备图片数据MimeBodyPart image = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource(photoSrc));// 需要修改image.setDataHandler(dh);image.setContentID("xxx.jpg");// 需要修改// 描述数据关系MimeMultipart mm = new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(image);mm.setSubType("related");message.setContent(mm);message.saveChanges();// 将创建好的邮件写入到F盘以文件的形式进行保存message.writeTo(new FileOutputStream("F:/Program Files/TestMail/ImageMail.eml"));// 需要修改// 返回创建好的邮件return message;}
}

3.发送包含附件的邮件

package cn.wz.util;import java.io.FileOutputStream;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;/*** @Description: 发送包含附件的邮件*/public class SendEmail_attachments {private static String mailFrom = null;// 指明邮件的发件人private static String password_mailFrom = null;// 指明邮件的发件人登陆密码private static String mailTo = null; // 指明邮件的收件人private static String mailTittle = null;// 邮件的标题private static String mailText = null; // 邮件的文本内容private static String mail_host = null; // 邮件的服务器域名private static String photoSrc = null; // 发送图片的路径public static void main(String[] args) throws Exception {mailFrom = "test1@wz.com";password_mailFrom = "test";mailTo = "test2@wz.com";mailTittle = "JavaMail邮件发送测试";mailText = "使用JavaMail创建的带附件的邮件";mail_host = "wz.com";photoSrc = "resource\\images\\5.jpg";Properties prop = new Properties();prop.setProperty("mail.host", mail_host);// 需要修改prop.setProperty("mail.transport.protocol", "smtp");prop.setProperty("mail.smtp.auth", "true");// 使用JavaMail发送邮件的5个步骤// 1、创建sessionSession session = Session.getInstance(prop);// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态session.setDebug(true);// 2、通过session得到transport对象Transport ts = session.getTransport();// 3、连上邮件服务器,需要发件人提供邮箱的用户名和密码进行验证ts.connect(mail_host, mailFrom, password_mailFrom);// 需要修改// 4、创建邮件Message message = createAttachMail(session);// 5、发送邮件ts.sendMessage(message, message.getAllRecipients());ts.close();}/*** @Method: createAttachMail* @Description: 创建一封带附件的邮件*/public static MimeMessage createAttachMail(Session session) throws Exception {MimeMessage message = new MimeMessage(session);// 设置邮件的基本信息message.setFrom(new InternetAddress(mailFrom));    // 发件人message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));// 收件人// 邮件标题message.setSubject(mailTittle);// 创建邮件正文,为了避免邮件正文中文乱码问题,需要使用charset=UTF-8指明字符编码MimeBodyPart text = new MimeBodyPart();text.setContent(mailText, "text/html;charset=UTF-8");// 创建邮件附件MimeBodyPart attach = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource(photoSrc));// 需要修改attach.setDataHandler(dh);attach.setFileName(dh.getName());// 创建容器描述数据关系MimeMultipart mp = new MimeMultipart();mp.addBodyPart(text);mp.addBodyPart(attach);mp.setSubType("mixed");message.setContent(mp);message.saveChanges();// 将创建的Email写入到F盘存储message.writeTo(new FileOutputStream("F:/Program Files/TestMail/ImageMail.eml"));// 需要修改// 返回生成的邮件return message;}
}

4.发送包含内嵌图片和附件的复杂邮件

package cn.wz.util;import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;/*** @Description: 发送包含内嵌图片和附件的复杂邮件*/public class SendEmail_Photo_Attachments {private static String mailFrom = null;// 指明邮件的发件人private static String password_mailFrom = null;// 指明邮件的发件人登陆密码private static String mailTo = null; // 指明邮件的收件人private static String mailTittle = null;// 邮件的标题private static String mailText = null; // 邮件的文本内容private static String mail_host = null; // 邮件的服务器域名private static String photoSrc = null; // 发送图片的路径private static List<String> fileList = new ArrayList<>(); // 发送附件的路径public static void main(String[] args) throws Exception {mailFrom = "test2@wz.com";password_mailFrom = "test";mailTo = "test3@wz.com";mailTittle = "带附件和带图片的的邮件";mailText ="xxx这是xxxx";mail_host = "wz.com";photoSrc = "resource\\images\\4.jpg";fileList.add(0,"resource\\attachments\\a.7z");fileList.add(1,"resource\\attachments\\b.7z");Properties prop = new Properties();prop.setProperty("mail.host", mail_host);// 需要修改prop.setProperty("mail.transport.protocol", "smtp");prop.setProperty("mail.smtp.auth", "true");// 使用JavaMail发送邮件的5个步骤// 1、创建sessionSession session = Session.getInstance(prop);// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态session.setDebug(true);// 2、通过session得到transport对象Transport ts = session.getTransport();// 3、连上邮件服务器,需要发件人提供邮箱的用户名和密码进行验证ts.connect(mail_host, mailFrom, password_mailFrom);// 需要修改// 4、创建邮件Message message = createMixedMail(session);// 5、发送邮件ts.sendMessage(message, message.getAllRecipients());ts.close();}/*** @Method: createMixedMail* @Description: 生成一封带附件和带图片的邮件*/public static MimeMessage createMixedMail(Session session) throws Exception {MimeMessage message = new MimeMessage(session);// 设置邮件的基本信息message.setFrom(new InternetAddress(mailFrom)); // 发件人  message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));// 收件人message.setSubject(mailTittle);// 正文MimeBodyPart text = new MimeBodyPart();text.setContent(mailText+"<br/><img src='cid:aaa.jpg'>", "text/html;charset=UTF-8");// 图片MimeBodyPart image = new MimeBodyPart();image.setDataHandler(new DataHandler(new FileDataSource(photoSrc)));image.setContentID("aaa.jpg");// 附件1MimeBodyPart attach = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource(fileList.get(0)));attach.setDataHandler(dh);attach.setFileName(dh.getName());// 附件2MimeBodyPart attach2 = new MimeBodyPart();DataHandler dh2 = new DataHandler(new FileDataSource(fileList.get(1)));attach2.setDataHandler(dh2);attach2.setFileName(MimeUtility.encodeText(dh2.getName()));// 描述关系:正文和图片MimeMultipart mp1 = new MimeMultipart();mp1.addBodyPart(text);mp1.addBodyPart(image);mp1.setSubType("related");// 描述关系:正文和附件MimeMultipart mp2 = new MimeMultipart();mp2.addBodyPart(attach);mp2.addBodyPart(attach2);// 代表正文的bodypartMimeBodyPart content = new MimeBodyPart();content.setContent(mp1);mp2.addBodyPart(content);mp2.setSubType("mixed");message.setContent(mp2);message.saveChanges();message.writeTo(new FileOutputStream("F:/Program Files/TestMail/ImageMail.eml"));// 返回创建好的的邮件return message;}
}

Java 发送邮件的几种方式相关推荐

  1. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本.富文本.HTML 等格式的邮件 本文将聊聊利用 Python ...

  2. Java技术分享:升级所安装Java版本的两种方式

    在进行Java开发的时候我们可能会需要升级所安装的Java版本,那么你知道应该如何安装吗?小千今天就来给大家介绍两种方式. 一.卸载掉原本安装的Java,下载最新安装包安装即可. 这个步骤就不介绍了, ...

  3. python 发送邮件的两种方式【终极篇】

    python 发送邮件的两种方式[终极篇] 一,利用python自带的库 smtplib简单高效 from email.mime.multipart import MIMEMultipart from ...

  4. 最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例 ...

  5. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

  6. java创建对象的五种方式

    java创建对象的五种方式 一.使用new关键字 二.使用clone方法 三.使用反序列化 四.使用反射 五.使用Unsafe 一.使用new关键字 如 User user=new User(); 执 ...

  7. Linux之Ubuntu20.04安装Java JDK8的两种方式

    Linux之Ubuntu20.04远程安装Java JDK8的两种方式 安装openjdk8 更新软件包列表: sudo apt-get update 安装openjdk-8-jdk: sudo ap ...

  8. python自动发邮件富文本_Python自动化测试发送邮件太麻烦?!一起聊一聊 Python 发送邮件的3种方式...

    1. 前言 发送邮件,我们在平时工作中经用到,做为测试人员,在自动化测试中用的也比较多,需要发送邮件给某领导 SMTP是Python默认的邮件模块,可以发送纯文本.富文本.HTML 等格式的邮件 今天 ...

  9. 关于发送邮件的几种方式

    关于SMTP协议 简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准. SMTP是一个相对简单的基于文本的协议. ...

  10. java 发送邮件(SSL加密方式,含附件)

    java 发送邮件(SSL加密方式) 一.基于javamail发送邮件 二.基于Apache提供的commons-email发送邮件 一.基于javamail发送邮件 maven: <depen ...

最新文章

  1. linux ssh -R 代理不同内网主机互连
  2. c++求平均值_云顶之弈S4:六射手娱乐吃鸡!人均刮痧王,每个人都是主C
  3. 【MongoDB】增删改查基本操作
  4. Spark函数详解系列--RDD基本转换
  5. MySQL学习笔记7:基本查询
  6. continue后面的语句还执行吗_循环结构辅助控制语句
  7. 树莓派zero配置打印机
  8. obj 转为Json 时间格式自定义
  9. 微信开通检测工具使用小诀窍
  10. 5分钟商学院学习笔记
  11. 湖南大学计算机专业毕业生待遇,分享湖南大学2017年毕业生就业基本情况及质量薪资...
  12. 计算机存储一个像素点需要多少个字节
  13. 使用Softice调试驱动程序
  14. 漏洞修复:web应用服务器版本信息泄露
  15. 计算机实践游戏报告范文,关于在校学生玩电脑游戏的调查报告
  16. Spring Catching 实战
  17. redis学习日志 【一、安装】
  18. 基于遥感影像的耕地地块提取相关论文、代码以及相关开源数据集
  19. c++-tissue_habit-namespace
  20. Second Language Acquire 英语探索前期

热门文章

  1. Yolov5学习笔记(1)——训练出自己的模型
  2. nmap扫描工具安装/升级/卸载教程
  3. 朋友在B站魔力赏抽到的动漫周边,把我看馋了
  4. 遍历二叉树的神级方法
  5. 年审是当月还是当天_车辆年检可以在到期当月进行吗
  6. 如何写一个好的缺陷(Defect)报告
  7. 51CTO学院三周年-我的rhce7认证之路
  8. 使用React.js和appbase.io构建类似Twitter的Search Feed
  9. 验证码自动识别平台与打码平台的区别
  10. 卸载office2010安装包时提示语言不受系统支持