转自:https://blog.csdn.net/u011031689/article/details/51326595

测试可用:

有些重复代码没有给注释。类的方法作用自行查看API了解,最后附上源码。

首先使用JavaMail的jar,官网可下载。

公共静态的常量:

 
  1. public final static String MAIL = "@sina.com"; // 邮箱格式

  2. public final static String SEND_HOST = "smtp.sina.com"; // 邮箱发送服务器

  3. public final static String ACCEPT_HOST = "pop.sina.com"; // 邮箱服务器

  4. public final static String SEND_USER = "xxxx"; // 用户名

  5. public final static String SEND_PWD = "xxxxx"; // 密码

  6. public final static String FROM_MAIL = SEND_USER + "@sina.com";// 发送方邮箱地址

  7. public final static String TO_MAIL = "xxxx@sina.com"; // 接收方邮箱地址

  8. public final static String CC_MAIL = SEND_USER + MAIL; // 抄送方邮箱地址

  9. public final static String BCC_MAIl = SEND_USER + MAIL; // 密送方邮箱地址

  10. public final static String ENCODE = "UTF-8";

  11. public static Date date = new Date();

使用java自带的接口和类发送文本格式邮件

 
  1. Properties prop = new Properties();

  2. prop.setProperty("mail.host", SEND_HOST);

  3. prop.setProperty("mail.transport.protocol", "smtp");

  4. prop.setProperty("mail.smtps.ssl.enable", "true");

  5. // prop.setProperty("mail.smtp.port", "25");

  6. prop.setProperty("mail.smtp.auth", "true");

  7. Session session = Session.getInstance(prop); //创建应用会话

  8. Message message = new MimeMessage(session); //消息摘要,是邮件的主体

  9. message.setSubject("测试"); //设置主题

  10. message.setText("你好!"); //邮件内容

  11. message.setSentDate(new Date()); //发送日期

  12. message.setFrom(new InternetAddress(FROM_MAIL)); //发送方

  13. message.addRecipient(Message.RecipientType.TO, new InternetAddress(TO_MAIL)); //接受方

  14. message.saveChanges(); //保存邮件主体对象内容

  15. Transport transport = session.getTransport(); //传输对象

  16. transport.connect(SEND_HOST, FROM_MAIL, SEND_PWD); //连接服务器中的邮箱

  17. transport.sendMessage(message, message.getAllRecipients()); //发送

  18. transport.close(); //关闭传输

  19. System.out.println("Successfully send mail to all user");

感觉自带的接口方法比较麻烦,使用spring封装的javamail,记的导入spring相关包。

使用spring发送文本格式的邮件,代码如下:

 
  1. public static void sendTxtMail() throws MailException {

  2. JavaMailSenderImpl send = new JavaMailSenderImpl();

  3. Properties prop = new Properties();

  4. prop.setProperty("mail.transport.protocol", "smtp");

  5. prop.setProperty("mail.host", SEND_HOST);

  6. prop.setProperty("mail.smtps.ssl.enable", "true");

  7. prop.setProperty("mail.smtp.auth", "true");

  8. send.setUsername(SEND_USER);

  9. send.setPassword(SEND_PWD);

  10. send.setJavaMailProperties(prop);

  11. SimpleMailMessage msg = new SimpleMailMessage();

  12. msg.setFrom(FROM_MAIL);

  13. msg.setTo(TO_MAIL);

  14. msg.setReplyTo(FROM_MAIL);

  15. msg.setCc(CC_MAIL);

  16. msg.setBcc(BCC_MAIl);

  17. msg.setSentDate(date);

  18. msg.setSubject("发送的文本格式邮件");

  19. msg.setText("文本格式 测试成功!");

  20. send.send(msg);

  21. System.out.println("Successfully send mail to the user");

使用spring的封装方法发送Html格式邮件 ,代码如下:

 
  1. // 发送Html格式邮件

  2. public static void sendHtmlMail() throws Exception {

  3. JavaMailSenderImpl send = new JavaMailSenderImpl();

  4. Properties prop = new Properties();

  5. prop.setProperty("mail.transport.protocol", "smtp");

  6. prop.setProperty("mail.host", SEND_HOST);

  7. prop.setProperty("mail.smtps.ssl.enable", "true");

  8. prop.setProperty("mail.smtp.auth", "true");

  9. send.setUsername(SEND_USER);

  10. send.setPassword(SEND_PWD);

  11. send.setJavaMailProperties(prop);

  12. MimeMessage msg = send.createMimeMessage();

  13. MimeMessageHelper helper = new MimeMessageHelper(msg, ENCODE);

  14. helper.setFrom(FROM_MAIL);

  15. helper.setTo(TO_MAIL);

  16. helper.setReplyTo(FROM_MAIL);

  17. helper.setCc(CC_MAIL);

  18. helper.setBcc(BCC_MAIl);

  19. helper.setSentDate(date);

  20. helper.setSubject("发送的HTML格式邮件");

  21. String html = "<font size='5' color='red'>HTML格式测试成功!</font>";

  22. helper.setText(html, true); // 邮件内容,参数true表示是html代码

  23. send.send(msg);

  24. System.out.println("Successfully send mail to the user");

使用spring的封装方法发送带内嵌内容的Html格式邮件 ,代码如下:

 
  1. // 发送带内嵌文件的HTML格式邮件

  2. public static void sendInlineMail() throws Exception {

  3. // spring提供的邮件实现类

  4. JavaMailSenderImpl send = new JavaMailSenderImpl();

  5. Properties prop = new Properties();

  6. prop.setProperty("mail.transport.protocol", "smtp"); // 设置邮件发送协议

  7. prop.setProperty("mail.host", SEND_HOST); // 邮件服务器地址

  8. prop.setProperty("mail.smtps.ssl.enable", "true"); // 邮件ssl验证

  9. prop.setProperty("mail.smtp.auth", "true"); // 邮件服务身份验证

  10. send.setUsername(SEND_USER); // 设置用户名

  11. send.setPassword(SEND_PWD); // 设置密码

  12. send.setJavaMailProperties(prop);

  13. MimeMessage msg = send.createMimeMessage();

  14. // 指定HTML编码,参数true表示为multipart

  15. MimeMessageHelper helper = new MimeMessageHelper(msg, true, ENCODE);

  16. helper.setFrom(FROM_MAIL); // 发送者邮箱

  17. helper.setTo(TO_MAIL); // 接收者邮箱

  18. helper.setReplyTo(FROM_MAIL); // 回复邮箱

  19. helper.setCc(CC_MAIL); // 抄送邮箱

  20. helper.setBcc(BCC_MAIl); // 密送邮箱

  21. helper.setSentDate(date); // 发送日期

  22. helper.setSubject("发送的带有内部文件的HTML格式邮件");

  23. String html = "<font size='5' color='red'>HTML格式测试成功!</font>"

  24. + "<img src ='cid:demoimg'>"; // cid是一个固定前缀,demoimg是一个资源名称

  25. helper.setText(html, true); // 邮件内容,参数true表示是html代码

  26. ClassPathResource resource = new ClassPathResource("col.jpg"); // 加载项目路径下资源

  27. helper.addInline("demoimg", resource); // 将资源绑定到demoimg上

  28. send.send(msg); // 发送邮件

  29. System.out.println("Successfully send mail to the user");

  30. }

使用spring的封装方法发送带附件的邮件 ,代码如下:

 
  1. // 发送带附件的邮件

  2. public static void sendAttachmentMail() throws Exception {

  3. // spring提供的邮件实现类

  4. JavaMailSenderImpl send = new JavaMailSenderImpl();

  5. Properties prop = new Properties();

  6. prop.setProperty("mail.transport.protocol", "smtp"); // 设置邮件发送协议

  7. prop.setProperty("mail.host", SEND_HOST); // 邮件服务器地址

  8. prop.setProperty("mail.smtps.ssl.enable", "true"); // 邮件ssl验证

  9. prop.setProperty("mail.smtp.auth", "true"); // 邮件服务身份验证

  10. send.setUsername(SEND_USER); // 设置用户名

  11. send.setPassword(SEND_PWD); // 设置密码

  12. send.setJavaMailProperties(prop);

  13. MimeMessage msg = send.createMimeMessage();

  14. // 指定HTML编码,参数true表示为multipart

  15. MimeMessageHelper helper = new MimeMessageHelper(msg, true, ENCODE);

  16. helper.setFrom(FROM_MAIL); // 发送者邮箱

  17. helper.setTo(TO_MAIL); // 接收者邮箱

  18. helper.setReplyTo(FROM_MAIL); // 回复邮箱

  19. helper.setCc(CC_MAIL); // 抄送邮箱

  20. helper.setBcc(BCC_MAIl); // 密送邮箱

  21. helper.setSentDate(date); // 发送日期

  22. helper.setSubject("发送带有附件的邮件");

  23. String html = "<font size='5' color='red'>附件测试成功!</font>";

  24. helper.setText(html, true); // 邮件内容,参数true表示是html代码

  25. String demo = "demo.docx";

  26. ClassPathResource resource = new ClassPathResource(demo); // 加载项目路径下资源

  27. helper.addAttachment(MimeUtility.encodeWord(demo), resource); // 如果文件是中文名,需要转码。

  28. send.send(msg); // 发送邮件

  29. System.out.println("Successfully send mail to the user");

  30. }

在测试之前记得将邮箱smtp、pop设置上,否者会报验证错误或连接服务错误 即50X系列错误。

使用Java发送各种格式的邮件相关推荐

  1. 【干货】使用Java发送各种格式的邮件

    测试可用: 有些重复代码没有给注释.类的方法作用自行查看API了解,最后附上源码. 首先使用JavaMail的jar,官网可下载. 公共静态的常量: public final static Strin ...

  2. java 发送html格式的邮件(包含附件)

    目录 一.需求描述 二.实现方法 二.错误写法,防止踩坑 三. 正确写法 四.邮件中携带附件 五.邮件发送 一.需求描述 图1显示的是系统中已经配置好的邮件模板,是html格式的内容.要我们把这个模板 ...

  3. Java发送网易企业邮箱邮件

    Java发送网易企业邮箱邮件 /** 此方法使用smtp协议 查看网易企业邮箱各种协议的主机和端口可访问https://qiye.163.com/help/client-profile.html查看* ...

  4. spring 发送html邮件,Springboot2.0 发送HTML 格式的邮件。

    目的:使用 Springboot2.0 发送 HTML 格式的邮件 这是建立在 你会使用 springboot2.0 发送邮件的基础上,参考这篇博客: https://blog..net/Tomwil ...

  5. python发html邮件_在python中如何制作发送HTML格式的邮件?

    邮件的设计和制作,作为邮件营销的重要环节,直接影响着一次营销活动转化.我们知道,不同的邮件客户端有不同的解析规则.一封设计精美的邮件,如果Html格式不规范,在客户端显示的效果往往会大打折扣.所以,如 ...

  6. java发送内嵌图片邮件

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

  7. linux邮件可以带文件格式,在Linux命令行下发送html格式的邮件

    在Linux利用formail+sendmail来发送带图片的邮件 自测: (echo "    业务预估统计.";echo "    ";) | formai ...

  8. python 发送html格式的邮件

    python 批量发送html格式邮件 config.ini 文件 [emial] username=发送者邮箱 password=密码 import os import sys import smt ...

  9. java发送带格式邮件及带多附件

    最近忙于将日常的质量工作纳入到自动化管理中,其中经常会实现给不同人员发送带特定格式和附件的邮件,并抄送给某些领导,在实现过程中从网上找到的东东基本上是比较单一的某项功能,现我把工作中遇到的这种比较综合 ...

最新文章

  1. 安装您的Sbo Add-on插件
  2. linux数据库创建表空间语句,如何用LINUX用命令创建ORACLE数据库表空间和用户
  3. 在DZ 中 showmessage 中可以再次执行 JS
  4. 孙丕恕离开浪潮 仪器厂历时60年成为服务器龙头企业
  5. python公式计算器_Python-计算器
  6. 免费 Flash 留言板 -Powered by Kong
  7. 工作流实战_26_flowable 变量判断汇总
  8. 面试官 | Java 对象不使用时为什么要赋值为 null?
  9. 自动提示_EXCEL2013版突然打不开,自动修复提示1907错误
  10. OpenSSL windows 下编译
  11. 如果SQL Server 配置管理器没有找到就代表安装失败?
  12. 博途V16软件官方下载和安装
  13. 如何评估开发费 (From 程序匠人)
  14. 物联网和边缘部署的5大嵌入式工控机设计要求
  15. 学java进美团_美团实习Java岗面经,已拿offer
  16. element-ui校验表单只能输入数字
  17. android uri parcel,Android Intent 使用 Parcel 反序列化出错.
  18. trainning 2017-11-21
  19. 行业寒冬下,简历发了几千次已读不回,功能测试的出路在哪里?
  20. 017~022 函数 课后练习题

热门文章

  1. python对象包括哪些,Python | 对象和类
  2. linux系统资源分析 - 磁盘IO篇
  3. 如何增强服务器io性能,云服务器磁盘io性能提升
  4. NEUQACM双周赛(二)
  5. 新版Chrome http访问无法打开摄像头
  6. es自定义分词器对数字分词
  7. 修改docker容器mysql密码
  8. 离线命令词识别 (基于ASRT HTTP)
  9. 分布java开发_java分布服务:我打赌,没人可以这么精短的讲出分布服务架构吧...
  10. Creo 10.0.0 安装包及安装教程