首先要先在QQ邮箱里开启服务

超详细博客 ←点击这里

QQ邮箱–>邮箱设置–>账户>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启POP3/SMTP服务,然后获取授权码(注意不要将授权码泄露,一个账户可以拥有多个授权码)

第一种,纯文字

package com.tuhu.back.utils;import org.springframework.stereotype.Service;import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;//import org.springframework.mail.javamail.JavaMailSender;
//import org.springframework.mail.javamail.MimeMessageHelper;/*** @Author: zyh* @Description: 描述* @CreateDate: 2020/2/14* @UpdateDate: 2020/2/14* @UpdateRemark: 修改内容* @Version: 1.0*/
//@Component
@Service
public class EmailUtils {//    @Resource
//    JavaMailSender mailSender;private static final String host = "smtp.qq.com";private static final String from = "182404@qq.com";private static final String username = "182404@qq.com";    // 账号private static final String password = "dz*****ihf";   // 第三方授权码/*** 发送邮件* @param to 目的地* @param code 内容* @throws Exception*/public static Result sendMail(String to,String code) throws MessagingException {//1.配置发送邮件的属性Properties properties = new Properties();properties.setProperty("mail.smtp.host", "localhost"); //设置协议主机properties.setProperty("mail.smtp.auth", "true"); //设置smtp是否需要认证//2.根据属性获得一个会话Session session = Session.getInstance(properties);//3.设置会话是debug模式(会打印更多相关信息)session.setDebug(true);//4.创建邮件主题信息对象MimeMessage message = new MimeMessage(session);//5.设置发件人message.setFrom(new InternetAddress(from));//6.设置邮件主题message.setSubject("你好这是邮箱验证码");//7.设置邮件正文message.setText(code);//8.设置收件人: TO-发送    CC-抄送   BCC-密送message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));//9.获取发送器对象:提供指定的协议Transport transport = session.getTransport("smtp");//10.设置发件人的信息transport.connect(host, username, password);//11.发送邮件transport.sendMessage(message, message.getAllRecipients());//12.关闭资源transport.close();return Result.ok("发送成功");}}

第二种+带附件


import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Properties;import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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;import com.sun.mail.util.MailSSLSocketFactory;
import org.springframework.util.StringUtils;/*** 发送邮件工具类** @author tp**/
public class SendMailAcceUtils {public static void main(String[] args) {String receive="276@qq.com";String subject ="邮件主题";String msg ="邮件内容";String filename ="C:/Users/Desktop/123.png";try {SendMailAcceUtils.sendMail(receive, subject, msg, filename);} catch (GeneralSecurityException e) {e.printStackTrace();}}/*** 发送带附件的邮件** @param receive*            收件人* @param subject*            邮件主题* @param msg*            邮件内容* @param filename*            附件地址* @return* @throws GeneralSecurityException*/public static boolean sendMail(String receive, String subject, String msg, String filename)throws GeneralSecurityException {if (StringUtils.isEmpty(receive)) {return false;}// 发件人电子邮箱final String from = "412@qq.com";// 发件人电子邮箱密码final String pass = "zzt******cahj";//qq 授权码// 指定发送邮件的主机为 smtp.qq.comString host = "smtp.qq.com"; // 邮件服务器// 获取系统属性Properties properties = System.getProperties();// 设置邮件服务器properties.setProperty("mail.smtp.host", host);properties.put("mail.smtp.auth", "true");MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);properties.put("mail.smtp.ssl.enable", "true");properties.put("mail.smtp.ssl.socketFactory", sf);// 获取默认session对象Session session = Session.getDefaultInstance(properties, new Authenticator() {public PasswordAuthentication getPasswordAuthentication() { // qq邮箱服务器账户、第三方登录授权码return new PasswordAuthentication(from, pass); }});try {// 创建默认的 MimeMessage 对象MimeMessage message = new MimeMessage(session);// Set From: 头部头字段message.setFrom(new InternetAddress(from));// Set To: 头部头字段message.addRecipient(Message.RecipientType.TO, new InternetAddress(receive));// Set Subject: 主题文字message.setSubject(subject);// 创建消息部分BodyPart messageBodyPart = new MimeBodyPart();// 消息messageBodyPart.setText(msg);// 创建多重消息Multipart multipart = new MimeMultipart();// 设置文本消息部分multipart.addBodyPart(messageBodyPart);// 附件部分messageBodyPart = new MimeBodyPart();// 设置要发送附件的文件路径DataSource source = new FileDataSource(filename);messageBodyPart.setDataHandler(new DataHandler(source));// messageBodyPart.setFileName(filename);// 处理附件名称中文(附带文件路径)乱码问题messageBodyPart.setFileName(MimeUtility.encodeText(filename));multipart.addBodyPart(messageBodyPart);// 发送完整消息message.setContent(multipart);// 发送消息Transport.send(message);// System.out.println("Sent message successfully....");return true;} catch (MessagingException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}return false;}}

Java实现发送QQ邮箱+附件相关推荐

  1. Java邮件发送QQ邮箱带附件

    添加依赖 <!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency><groupId& ...

  2. java实现发送qq邮箱验证码

    1.登录qq邮箱,开启POP3/SMTP服务 路径:qq邮箱--->设置---->选择账户----> 打开 按照要求发送短信后得到授权码 得到授权码后要记得点击确定,页面拉到最下方点 ...

  3. java实现发送QQ邮箱

    需下载mail.jar包 获取16位SMTP命令步骤 默认是关闭的 ,将他开启获取16位SMTP命令 点击进行验证获取16位SMTP命令 package com.zking.test;import j ...

  4. Python3 发送QQ邮箱(含附件)

    Python3 发送QQ邮箱(含附件) 准备工作: 1.用到的python包:smtplib和email 2.获取qq邮箱授权码:在qq邮箱的设置里面的账户下面,开启POP3/SMTP服务和IMAP/ ...

  5. java mail 发送qq以及网易邮件

    1.准备工作:如果是用java mail发送qq邮件 和163邮件 需要注意的地方: (1)qq.163邮箱必须生成授权码才可以发送邮件, 这里使用的QQ邮箱   我们可以在邮箱帮助中找到QQ邮箱的p ...

  6. JAVA代码给QQ邮箱发邮件

    通过java代码给qq邮箱发邮件 使用发送邮箱所需要2个jar包 activation.jar    mail.jar 下载链接:https://pan.baidu.com/s/1YA3jgmUNzW ...

  7. php使用qq发邮件怎么发,php 发送QQ邮箱邮件

    这是我的源码比较简陋 https://www.lanzous.com/i2l7h8f 感谢 https://www.cnblogs.com/woider/p/6980456.html 下载phpmai ...

  8. Java mail使用QQ邮箱发送邮件配置方案

    Java mail使用QQ邮箱发送邮件配置方案 java mail配置了QQ邮箱作为服务器发送邮件,结果导致出现503异常: Authentication failed; nested excepti ...

  9. java模拟登录qq邮箱_使用Java实现qq邮箱发送邮件

    本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下 今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务来进行发送 ...

最新文章

  1. MySQL 不完全入门指南
  2. 用一句JQuery代码实现表格的简单筛选
  3. BZOJ 2257: [Jsoi2009]瓶子和燃料
  4. 俩台电脑怎么设置同一局域网_【必看】局域网ip地址不够用怎么办?
  5. PHP代码为什么不能直接保存HTML文件——PHP生成静态页面教程
  6. windows时间同步软件_有没有好用的windows时间管理软件?这款便签软件帮你
  7. 硕士毕业后去国外读法学博士_法学硕士的完整形式是什么?
  8. java comparator排序顺序_Java 集合排序策略接口 Comparator
  9. android 开发问题集(一):SDK更新后 运行程序报错Location of the Android SDK has not been setup in the preferences
  10. Response.End() 与Response.Close()的区别
  11. C语言学习——初始C语言
  12. 树莓派通过网络共享USB设备
  13. mysql如何修改字段名字_mysql如何修改字段名称
  14. 关于VGA接口连接1080p显示器模糊多半是线的问题
  15. 文献管理软件Zotero常用插件安装及配置使用
  16. django cleaned_data
  17. 二维码名片的生成与读取
  18. Compose系列 五 副作用 side-effect
  19. 基础数据类型补充 set集合 深浅拷贝
  20. 从七十年代到现在软件架构的思想变化

热门文章

  1. 110配线架25对线缆线序说明
  2. DS18B20数字温度计系统设计
  3. 一对一直播源码服务器怎么样防范恶意爬取信息
  4. iOS最新打包发布流程
  5. 亏钱的时候,有没有想起我说的。
  6. 贵阳大数据交易所 会员超500家
  7. 1080ti 和 2080ti 深度学习显卡价值对比
  8. tplink怎么进去_TP-link无线路由器设置图文教程
  9. P1021 日历问题
  10. 夸克浏览器有没有linux,为啥他们不用夸克浏览器?