1、首先下载相关Java包

地址:https://mp.csdn.net/postedit

2.创建一个项目将jar包导入

3.相关代码(主类SendEmail):

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;public class SendEmail {//发件人的邮箱和授权码private final String myEmailAccount = "填写自己的邮箱";//发送的邮箱private final String myEmailPassword = "填写自己的授权码";private String receiveMailAccount = null ;private String info=null;// 信息内容public void setReceiveMailAccount(String receiveMailAccount) {this.receiveMailAccount = receiveMailAccount;}public void setInfo(String info) {this.info = info;}// 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com// 网易163邮箱的 SMTP 服务器地址为: smtp.163.com    腾讯: smtp.qq.comprivate  String myEmailSMTPServer = "smtp.qq.com";public  void Send() throws Exception {// 1. 创建参数配置, 用于连接邮件服务器的参数配置Properties props = new Properties();                    // 参数配置props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)props.setProperty("mail.smtp.host", myEmailSMTPServer);   // 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.auth", "true");            // 需要请求认证// PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),//     如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,//     打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。// SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,//                  需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,//                  QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)final String smtpPort = "465";props.setProperty("mail.smtp.port", smtpPort);props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");props.setProperty("mail.smtp.socketFactory.fallback", "false");props.setProperty("mail.smtp.socketFactory.port", smtpPort);// 2. 根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getDefaultInstance(props);session.setDebug(true);                                 // 设置为debug模式, 可以查看详细的发送 log// 3. 创建一封邮件MimeMessage message = createMessage(session, myEmailAccount, receiveMailAccount,info);// 4. 根据 Session 获取邮件传输对象Transport transport = session.getTransport();// 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错// //    PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log,//           仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误//           类型到对应邮件服务器的帮助网站上查看具体失败原因。////    PS_02: 连接失败的原因通常为以下几点, 仔细检查代码://           (1) 邮箱没有开启 SMTP 服务;//           (2) 邮箱密码错误, 例如某些邮箱开启了独立密码;//           (3) 邮箱服务器要求必须要使用 SSL 安全连接;//           (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务;//           (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。////    PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。transport.connect(myEmailAccount, myEmailPassword);// 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 关闭连接transport.close();}/*** 创建一封只包含文本的简单邮件** @param session 和服务器交互的会话* @param sendMail 发件人邮箱* @param receiveMail 收件人邮箱* @return* @throws Exception*/public  MimeMessage createMessage(Session session, String sendMail, String receiveMail,String info) throws Exception {// 1. 创建一封邮件MimeMessage message = new MimeMessage(session);// 2. From: 发件人(昵称有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改昵称)message.setFrom(new InternetAddress(sendMail, "邮箱验证码测试", "UTF-8"));// 3. To: 收件人(可以增加多个收件人、抄送、密送)message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "xx用户", "UTF-8"));// 4. Subject: 邮件主题(标题有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改标题)message.setSubject("验证码", "UTF-8");// 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容)message.setContent("【验证码】:"+info, "text/html;charset=UTF-8");// 6. 设置发件时间message.setSentDate(new Date());// 7. 保存设置message.saveChanges();return message;}
}

4.创建一个主方法进行测试:

public class Test {public static void main(String[] args) {SendEmail sendEmail=new SendEmail();//设置要发送的邮箱sendEmail.setReceiveMailAccount("输入要发送的邮箱的账号");//创建10位发验证码Random random=new Random();String str="";for(int i=0;i<10;i++) {int n=random.nextInt(10);str+=n;}sendEmail.setInfo(str);try {sendEmail.Send();} catch (Exception e) {e.printStackTrace();}}}

5.运行完成之后查看邮箱是否成功

开始准备:

在自己的邮箱中进行如下设置获取授权码:

1.点击设置:

2.在账户中进行设置

3.开启(POP3/SMTP服务)协议

在设置发过程中会反馈自己的授权码。

以上设置完毕,就完成了简单的邮箱信息发送!!!

Java实现邮箱发送验证码(以QQ邮箱为例)相关推荐

  1. SpringBoot发送验证码到QQ邮箱JavaMailSender注入失败

    报错内容 *************************** APPLICATION FAILED TO START ***************************Description: ...

  2. Java 实现邮箱发送验证码——QQ邮箱为例

    JAVA实现使用QQ邮箱发送验证码功能 QQ邮箱设置 第一步 ,打开QQ邮箱(地址:https://mail.qq.com/): 第二步 ,登录后点击设置 第三步,点击账户,下拉找到POP3/IMAP ...

  3. android使用邮箱发送验证码

    https://www.jb51.net/article/111728.htm参考该文章 源码下载:https://download.csdn.net/download/qq_42110740/108 ...

  4. 最简单Java实现QQ邮箱发送验证码

    Java使用QQ邮箱发送验证码 1. 开启服务,获取授权码 需登录自己的QQ邮箱,打开 POP3/SMTP 服务,并获取授权码. 具体操作: 登录邮箱 邮箱首页 "设置" 选择 & ...

  5. java发送qq邮箱验证_JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

    JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...

  6. java发送qq邮箱验证_java代码发送邮箱验证码与qq邮箱smtp服务

    importjavax.mail.Session;importjavax.mail.Transport;importjavax.mail.internet.InternetAddress;import ...

  7. 实现QQ邮箱发送验证码

    工具包>>下载>>关注公众号> Kin9090  (或者直接扫码0.0) 注意邮箱要开启smtp效果 链接:https://pan.baidu.com/s/1Tzu7I6 ...

  8. SpringBoot通过qq邮箱发送验证码

    SpringBoot通过qq邮箱发送验证码 1.开启qq授权码 2.编写配置文件 spring:#邮箱验证mail:##163 smtp.163.com(反垃圾系统发送不了了)##qq smtp.qq ...

  9. 基于java注册登录MD5算法加盐加密颁发 Token身份令牌使用各种邮箱发送验证码详解雪花算法

    目的作用 == 在项目中,为了防止别人窥视我们的密码通常我们会采取一些加密方式.这里简单介绍一下MD5 加盐加密方法,MD5叫做信息-摘要算法,严格来说不是加密方式,而是信息摘要. 对于可以接触到数据 ...

最新文章

  1. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0
  2. 独立硬盘冗余阵列与HDFS
  3. 记一次内存泄漏问题的排查经历
  4. jzoj3463-军训【双重嵌套二分,随机数据水法】
  5. 是否可以改变 宏的值_给女人的建议:当父母不同意你的男朋友,可以尝试六个方法...
  6. matplotlib设置colorbar字体大小
  7. 《开源硬件创客——15个酷应用玩转树莓派》——第1章 初识树莓派
  8. fedora yum无法正常运行问题的解决
  9. 【一天一个C++小知识】009.C++面向对象
  10. 教你看懂MOSFET数据手册
  11. 网络狂飙(netspeeder) v3.28 游戏版 怎么用
  12. js小学生图区_多种方式实现js图片预览
  13. 4.9. 触发器(Trigger)
  14. WPS文字在线转换成Word
  15. 安卓android记单词软件
  16. “我不是不在乎钱,我只是不在乎这点钱。”
  17. ValueError: Classification metrics can‘t handle a mix of binary and continuous targets
  18. C语言>>8 0xFF; 0xFF;作用
  19. 阿里巴巴总裁马云经典语录。
  20. gocolly-字符串cookies处理(4)

热门文章

  1. 使用Python实现量化交易机器人定时启动或停止小工具
  2. Spark - Illegal pattern component: XXX 与org.apache.commons.lang3.time.FastDateFormat incompatible
  3. 从智能家居产业透视实体经济多元化之辩
  4. SDWAN与区块链——SDWAN CHEAP
  5. 一个屌丝程序猿的人生(六十六)
  6. linux查看.so导出函数
  7. 骨传导蓝牙耳机哪个牌子好?目前好用的骨传导蓝牙耳机推荐
  8. 【Spire.PDF】Spire.PDF导出报告之一获取与破解
  9. 大数据-计算引擎:MapReduce、TEZ、Spark【Hive可选用的三大计算引擎】
  10. Anaconda的安装