通过java代码给qq邮箱发邮件

使用发送邮箱所需要2个jar包

activation.jar    mail.jar

下载链接:https://pan.baidu.com/s/1YA3jgmUNzWOKun5WlwgBFA 密码:1or0

先要激活qq邮箱的pop3/smtp服务

账户里面有个开启服务的设置

我的邮箱已经开通过,你们点开启就行,开启成功有个授权码用于java代码登陆邮箱的

账户里面有个开启POP3服务的设置

点开启后会进行验证,验证通过会有个授权码

授权码用于java代码登陆邮箱的

效果图

然后代码如下

发送邮箱信息的类

package ljm.demo;import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
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 javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;public class Email {private static String defaultSenderName = "";// 默认的发件人用户名,defaultEntity用得到  private static String defaultSenderPass = "";// 默认的发件人密码,defaultEntity用得到  private static String defaultSmtpHost = "";// 默认的邮件服务器地址,defaultEntity用得到  private String smtpHost; // 邮件服务器地址  private String sendUserName; // 发件人的用户名  private String sendUserPass; // 发件人密码  private MimeMessage mimeMsg; // 邮件对象  private Session session;  private Properties props;  private Multipart mp;// 附件添加的组件  private List<FileDataSource> files = new LinkedList<FileDataSource>();// 存放附件文件  private void init() {  if (props == null) {  props = System.getProperties();  }  props.put("mail.transport.protocol", "smtp");// 连接协议        props.put("mail.smtp.host", smtpHost);  props.put("mail.smtp.port", "465");// 端口号       props.put("mail.smtp.socketFactory.port", "465");props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");props.put("mail.smtp.auth", "true"); // 需要身份验证  props.put("mail.smtp.ssl.enable", "true");//设置是否使用ssl安全连接  ---一般都使用props.put("mail.debug", "true");//设置是否显示debug信息  true 会在控制台显session = Session.getDefaultInstance(props, null);  // 置true可以在控制台(console)上看到发送邮件的过程  session.setDebug(true);  // 用session对象来创建并初始化邮件对象  mimeMsg = new MimeMessage(session);  // 生成附件组件的实例  mp = new MimeMultipart();  }  private Email(String smtpHost, String sendUserName, String sendUserPass, String to, String cc, String mailSubject, String mailBody,  List<String> attachments,String formName) {  this.smtpHost = smtpHost;  this.sendUserName = sendUserName;  this.sendUserPass = sendUserPass;  init();  setFrom(sendUserName,formName);  //设置发送人邮箱账号和发送人名字setTo(to);  //设置收件人邮箱setCC(cc);  //设置抄送setBody(mailBody);  //设置内容setSubject(mailSubject);  //设置标题if (attachments != null) {  //循环添加附件for (String attachment : attachments) {  addFileAffix(attachment);  }  }  }  /** * 邮件实体 *  * @param smtpHost *            邮件服务器地址 * @param sendUserName *            发件邮件地址 * @param sendUserPass *            发件邮箱密码 * @param to *            收件人,多个邮箱地址以半角逗号分隔 * @param cc *            抄送,多个邮箱地址以半角逗号分隔 * @param mailSubject *            邮件主题 * @param mailBody *            邮件正文 * @param attachmentPath *            附件路径 * @return */  public static Email entity(String smtpHost, String sendUserName, String sendUserPass, String to, String cc, String mailSubject, String mailBody,  List<String> attachments,String fromName) {  return new Email(smtpHost, sendUserName, sendUserPass, to, cc, mailSubject, mailBody, attachments,fromName);  }  /** * 默认邮件实体,用了默认的发送帐号和邮件服务器 *  * @param to *            收件人,多个邮箱地址以半角逗号分隔 * @param cc *            抄送,多个邮箱地址以半角逗号分隔 * @param subject *            邮件主题 * @param body *            邮件正文 * @param attachment *            附件全路径 * @return */  public static Email defaultEntity(String to, String cc, String subject, String body, List<String> attachments,String fromName) {  return new Email(defaultSmtpHost, defaultSenderName, defaultSenderPass, to, cc, subject, body, attachments,fromName);  }  /** * 设置邮件主题 *  * @param mailSubject * @return */  private boolean setSubject(String mailSubject) {  try {  mimeMsg.setSubject(mailSubject);  } catch (Exception e) {  return false;  }  return true;  }  /** * 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8 *  * @param mailBody * @return */  private boolean setBody(String mailBody) {  try {  BodyPart bp = new MimeBodyPart();  bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>" + mailBody, "text/html;charset=UTF-8");  // 在组件上添加邮件文本  mp.addBodyPart(bp);  } catch (Exception e) {  System.err.println("设置邮件正文时发生错误!" + e);  return false;  }  return true;  }  /** * 添加一个附件 *  * @param filename *            邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常 * @return */  public boolean addFileAffix(String filename) {  try {  if (filename != null && filename.length() > 0) {  BodyPart bp = new MimeBodyPart();  FileDataSource fileds = new FileDataSource(filename);  bp.setDataHandler(new DataHandler(fileds));  bp.setFileName(MimeUtility.encodeText(fileds.getName(), "utf-8", null)); // 解决附件名称乱码  mp.addBodyPart(bp);// 添加附件  files.add(fileds);  }  } catch (Exception e) {  System.err.println("增加邮件附件:" + filename + "发生错误!" + e);  return false;  }  return true;  }  /** * 删除所有附件 *  * @return */  public boolean delFileAffix() {  try {  FileDataSource fileds = null;  for (Iterator<FileDataSource> it = files.iterator(); it.hasNext();) {  fileds = it.next();  if (fileds != null && fileds.getFile() != null) {  fileds.getFile().delete();  }  }  } catch (Exception e) {  return false;  }  return true;  }  /** * 设置发件人地址 *  * @param from *            发件人地址 * @return */  private boolean setFrom(String from,String name) {  try {  mimeMsg.setFrom(new InternetAddress(from,name));  } catch (Exception e) {  return false;  }  return true;  }  /** * 设置收件人地址 *  * @param to收件人的地址 * @return */  private boolean setTo(String to) {  if (to == null)  return false;  try {  mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));  } catch (Exception e) {  return false;  }  return true;  }  /** * 设置抄送 *  * @param cc * @return */  private boolean setCC(String cc) {  if (cc == null) {  return false;  }  try {  mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));  } catch (Exception e) {  return false;  }  return true;  }  /** * 发送邮件 *  * @return */  public boolean send() throws Exception {  mimeMsg.setContent(mp);  mimeMsg.saveChanges();  System.out.println("正在发送邮件....");  Transport transport = session.getTransport("smtp");  // 连接邮件服务器并进行身份验证  transport.connect(smtpHost, sendUserName, sendUserPass);  // 发送邮件  transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));  System.out.println("发送邮件成功!");  transport.close();  return true;  }
}

测试类

package ljm.demo;import java.util.Arrays;
import java.util.List;import org.junit.Test;public class EmailTest {@Test  public void sendEmail() throws Exception {  String userName = "@qq.com"; // 发件人QQ邮箱  String password ="";//激活POP3/SMTP服务的授权码String smtpHost = "smtp.qq.com"; // 邮件服务器  String fromName="哥只是个传说";//发件人名称String to = "826853123@qq.com"; // 收件人的邮箱账号,多个收件人以半角逗号分隔  String cc = "3386747718@qq.com"; //抄送,多个抄送以半角逗号分隔  String subject = "测试JAVA发邮件代码?"; // 主题  String body = "JAVA给邮箱发信息的代码.."; // 正文,可以用html格式的哟  // 附件的路径是文件在你电脑上的绝对路径,多个附件以逗号分开List<String> attachments = Arrays.asList("C:\\Users\\ming\\Pictures\\Camera Roll\\m6.jpg","C:\\Users\\ming\\Pictures\\Camera Roll\\m7.jpg"); Email email = Email.entity(smtpHost, userName, password, to, cc, subject, body, attachments,fromName);  email.send(); // 发送!  }
}

如果有问题的可以发邮件到: m17600251492@163.com

JAVA代码给QQ邮箱发邮件相关推荐

  1. java mail使用qq邮箱发邮件的配置方法

    最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...

  2. 利用jmail qq邮箱发邮件 报错 解决方法

    利用java的jmail,登录qq邮箱发邮件时遇到下面几个问题,分享一下解决方法. 1. qq需要使用ssl  解决方法:使用有ssl安全认证的代码 <span style="font ...

  3. python使用qq邮箱发邮件

    发现QQ邮箱是个变态的东西...普通网上的教程根本无法搞定这个问题 于是写了这个,用于帮助大家使用python发邮件遇到的问题 第一步: 开启QQ第三方登录,参考文章 https://jingyan. ...

  4. 【Python用QQ邮箱发邮件】

    学习目标:Python用QQ邮箱发邮件 学习内容: 1:到入库 import smtplib from email.message import EmailMessage from datetime ...

  5. Postfix配置QQ邮箱发邮件

    配置QQ邮箱发邮件 1.这里使用了QQ邮箱的SMTP,需要做以下配置 2.qq邮箱通过生成授权码来设置密码  3.关闭服务器的sendmail服务,开启postfix服务 4.创建证书文件  root ...

  6. Java使用163和QQ邮箱发邮件

    "细雨梦回鸡塞远,小楼吹彻玉笙寒" 序 现在做的项目有做到流程审批,到下一节点时,会给节点的负责人发送邮件通知.流程都是手写的代码,没有用到流程引擎. 正文 其实通过QQ邮箱或者1 ...

  7. javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)

    以前的时候想着java发邮件很简单,因为当时使用的是outlook实现的,有兴趣的可以去看看之前的两篇博客文章,1.使用java底层实现邮件的发送(含测试,源码)   和 2.使用Spring实现邮件 ...

  8. 简单的Java代码实现给QQ邮箱发邮件

    一.前期准备 准备两个qq邮箱号,本例使用的是自己的两个邮箱 syc582535560@foxmail.com    2212444549@qq.com 下载javax.mail.jar  jar包 ...

  9. java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例

    这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...

最新文章

  1. winform DataGrid排序、去掉第一的空白列
  2. linux 7za下载,Linux安装7za
  3. mybatis批量插入oracle大量数据记录性能问题解决
  4. eof在c语言中表示什么_日语中的鍵为什么既能表示“钥匙”也能表示“锁”?...
  5. 微信小程序开发——字体样式设置
  6. 02-即时通讯-XMPP 简单介绍
  7. 爬虫一:用正则表达式爬取图片
  8. autoCAD2014安装激活
  9. android简单计算器源码
  10. 做了一个淘宝内部优惠券分享平台支持微信公众号以及网站
  11. SAP ABAP 系列丛书推荐:PP 报工
  12. 【转载】怎么设置博客背景
  13. #计划# 机器视觉 #视觉增强 #python #数据库 #算法 #深度学习 #迁移学习 #matlab #数据融合
  14. Hystrix断路器执行原理
  15. 高斯判别算法GDA(吴恩达机器学习c#实践,高斯模板上同心椭圆马氏距离画法,三)
  16. 樊登读书会终身成长读后感_终身成长读后感
  17. java项目斗地主介绍_详解java_ 集合综合案例:斗地主
  18. (一)arcpy开发利用arcpy在arcgis中批量裁剪影像
  19. Mac小技巧 | 如何在 Touch Bar 上显示歌词
  20. 讲给后台程序员看的前端系列教程(52)——Bootstrap轮播图

热门文章

  1. C#做了个相棋盘的图片
  2. 传智播客讲师_技术成果:来自两位全职讲师的播客如何帮助您最终获得编程
  3. 大云-L0-网络基础(二、三层)
  4. 记一次李姐SpringBean的生命周期
  5. 点击率和曝光率的区别是什么?
  6. pygame实现贪吃蛇
  7. [导入]“四大恶人”铁血股市
  8. 苏州空天信息研究院前端一面
  9. AverageMeter()函数介绍
  10. 计算机安装调试维修员五级算积分吗,计算机安装调试维修员(五级)理论知识.doc...