刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习。

-----------------------------第一步 开启SMTP服务

在 QQ 邮箱里的 设置->账户里开启 SMTP 服务

完成验证

获取授权码(后面代码实现时使用)

-----------------------------第二步 环境配置

即下载第三方库

https://github.com/javaee/javamail/releases

-----------------------------第三步 代码实现

  1. package com.core;
  2.  
  3. import java.security.GeneralSecurityException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.Properties;
  7. import javax.mail.Address;
  8. import javax.mail.Message;
  9. import javax.mail.MessagingException;
  10. import javax.mail.Session;
  11. import javax.mail.Transport;
  12. import javax.mail.internet.InternetAddress;
  13. import javax.mail.internet.MimeMessage;
  14.  
  15. import com.sun.mail.util.MailSSLSocketFactory;
  16.  
  17. public class MailTool {
  18.  
  19. public static void main(String[] args) throws MessagingException, GeneralSecurityException {
  20.  
  21. Properties props = new Properties();
  22.  
  23. // 开启debug调试
  24. props.setProperty("mail.debug", "true");
  25. // 发送服务器需要身份验证
  26. props.setProperty("mail.smtp.auth", "true");
  27. // 设置邮件服务器主机名
  28. props.setProperty("mail.host", "smtp.qq.com");
  29. // 发送邮件协议名称
  30. props.setProperty("mail.transport.protocol", "smtp");
  31.  
  32. // 开启SSL加密,否则会失败
  33. MailSSLSocketFactory sf = new MailSSLSocketFactory();
  34. sf.setTrustAllHosts(true);
  35. props.put("mail.smtp.ssl.enable", "true");
  36. props.put("mail.smtp.ssl.socketFactory", sf);
  37.  
  38. // 创建session
  39. Session session = Session.getInstance(props);
  40.  
  41. // 创建邮件
  42. Message msg = new MimeMessage(session);
  43. // 设置标题
  44. msg.setSubject("测试邮件");
  45. // 编辑内容
  46. StringBuilder builder = new StringBuilder();
  47. builder.append("这是一封java mail测试邮件\n");
  48. builder.append("这是第二行");
  49. builder.append("\n时间 " + getStringDate());
  50. // 设置内容
  51. msg.setText(builder.toString());
  52. // 发送的邮箱地址
  53. msg.setFrom(new InternetAddress("自己的邮箱@qq.com"));
  54. // 通过session得到transport对象
  55. Transport transport = session.getTransport();
  56. // 连接邮件服务器:邮箱类型,帐号,授权码代替密码(更安全)
  57. transport.connect("smtp.qq.com", "自己的邮箱@qq.com", "授权码");
  58. // 发送邮件
  59. transport.sendMessage(msg, new Address[] { new InternetAddress("目标邮箱@qq.com") });
  60. transport.close();
  61. }
  62.  
  63. /**
  64. * 获取当前时间
  65. * @return String
  66. */
  67. public static String getStringDate() {
  68. Date currentTime = new Date();
  69. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  70. String dateString = formatter.format(currentTime);
  71. return dateString;
  72. }
  73.  
  74. }

-----------------------------第四步 效果展示

-----------------------------第五步 推荐

JAVA发送邮件最全示例

Java基于JavaMail实现向QQ邮箱发送邮件

基于java mail实现简单的QQ邮箱发送邮件的更多相关文章

  1. 使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response

    使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.Messagin ...

  2. legend3---lavarel中使用qq邮箱发送邮件

    legend3---lavarel中使用qq邮箱发送邮件 一.总结 一句话总结: 第一步:配置邮箱做服务器,比如qq邮箱,网易163邮箱 第二步:配置lavarel的配置文件 第三部:写邮件发送代码就 ...

  3. 杂项之使用qq邮箱发送邮件

    杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...

  4. SpringBoot使用qq邮箱发送邮件

    最近公司要做一个邮箱注册和重置密码的功能,因为之前就做过,但是不是Springboot项目,所以相对来说还是比较容易的,在这里记录一下. 一.引用Maven依赖 这里使用spring自带的邮件jar包 ...

  5. python3通过qq邮箱发送邮件

    python3通过qq邮箱发送邮件 0.了解qq邮箱的SMTP QQ邮箱 POP3 和 SMTP 服务器地址设置如下: 邮箱 POP3服务器(端口995) SMTP服务器(端口465或587) qq. ...

  6. ecshop QQ邮箱发送邮件服务器配置

    ecshop QQ邮箱发送邮件服务器配置 1.邮件服务:采用其他的SMTP服务 2.邮件服务器是否要求加密连接(SSL): 是 此项设置需要php支持openSSL模块 开启方法: a.php.ini ...

  7. python qq邮箱发送邮件

    使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.set ...

  8. Java发送带附件的QQ邮箱

    由于腾讯公司给QQ邮箱增加了一个授权码的密码保护,导致之前网上很多代码都不能用,于是就自己敲了一份demo. 注意在密码那里可能需要授权码,具体设置:http://service.mail.qq.co ...

  9. QQ邮箱发送邮件,出现mail from address must be same as authorization user错误

    之前做的一个系统,有个发送邮件的功能,一直能正常使用,今天同事说QQ邮箱发送不了. 立马着手调试,发现服务器一直出现“mail from address must be same as authori ...

随机推荐

  1. 更改 easyUI 的皮肤样式

    我的版本是:jquery-easyui-1.3.2.根据官方提供的皮肤样式,——在theme 里面: 只需要在引入的 页面中 link样式的地址改变即可: <link rel="sty ...

  2. Centos下Subversion 服务器安装配置

    1.安装 # yum install subversion 2. svn配置 建立svn版本库目录可建多个:2.1 新建文件夹: # mkdir -p /opt/svndata/repos 2.2 建 ...

  3. lucene: IO/FileNotFoundException:(Too many open files) 查询异常解决

    http://stackoverflow.com/questions/6210348/too-many-open-files-error-on-lucene   baidu zone - 为什么Luc ...

  4. hiredis学习整理

    hiredis安装 http://blog.csdn.net/aizquan/article/details/20777453 http://blog.csdn.net/zhwei_87/articl ...

  5. 04-2winPE里面下载系统并安装系统教程

    winPE里面下载系统并安装系统教程 首先需要注意的是,你已经使用 装机助理 工具制作好U盘启动盘,通过电脑功能键进入PE界面(不同型号的电脑进入PE界面的功能键不同,根据不同搜索属于她的功能键): ...

  6. Python数据处理——绘制函数图形以及数据拟合

    1.多项式拟合 对散点进行多项式拟合并打印出拟合函数以及拟合后的图形import matplotlib.pyplot as pltimport numpy as npx=np.arange(1,17, ...

  7. Windows内存管理的方式

    一.内存的概念 1. 物理内存:即插在主板上的内存条.他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外). 但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导 ...

  8. 对象关系映射 EmitMapper 及Tuple的使用

    public TDestination Map<TSource, TDestination>(TSource tSource) { if (tSource == null) return ...

  9. JQuery最佳实践及常见错误(转自 简书)

    1 使用JQuery的ready处理器 如果你的代码操作DOM,则需要DOM加载完成后再运行代码.推荐使用如下的第一种写法,第二种写法在JQuery3.x中已经不推荐使用了. $(function ( ...

  10. Java 8 Lambda表达式介绍

    Lambda是什么? Lambda是一个匿名函数,我们可以把Lambda理解为是一段可以传递的代码.可以写出简洁.灵活的代码.作为一种更紧凑的代码风格,使java的语言表达能力得到提升. 可以这么说l ...