JAVA代码给QQ邮箱发邮件
通过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邮箱发邮件相关推荐
- java mail使用qq邮箱发邮件的配置方法
最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...
- 利用jmail qq邮箱发邮件 报错 解决方法
利用java的jmail,登录qq邮箱发邮件时遇到下面几个问题,分享一下解决方法. 1. qq需要使用ssl 解决方法:使用有ssl安全认证的代码 <span style="font ...
- python使用qq邮箱发邮件
发现QQ邮箱是个变态的东西...普通网上的教程根本无法搞定这个问题 于是写了这个,用于帮助大家使用python发邮件遇到的问题 第一步: 开启QQ第三方登录,参考文章 https://jingyan. ...
- 【Python用QQ邮箱发邮件】
学习目标:Python用QQ邮箱发邮件 学习内容: 1:到入库 import smtplib from email.message import EmailMessage from datetime ...
- Postfix配置QQ邮箱发邮件
配置QQ邮箱发邮件 1.这里使用了QQ邮箱的SMTP,需要做以下配置 2.qq邮箱通过生成授权码来设置密码 3.关闭服务器的sendmail服务,开启postfix服务 4.创建证书文件 root ...
- Java使用163和QQ邮箱发邮件
"细雨梦回鸡塞远,小楼吹彻玉笙寒" 序 现在做的项目有做到流程审批,到下一节点时,会给节点的负责人发送邮件通知.流程都是手写的代码,没有用到流程引擎. 正文 其实通过QQ邮箱或者1 ...
- javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)
以前的时候想着java发邮件很简单,因为当时使用的是outlook实现的,有兴趣的可以去看看之前的两篇博客文章,1.使用java底层实现邮件的发送(含测试,源码) 和 2.使用Spring实现邮件 ...
- 简单的Java代码实现给QQ邮箱发邮件
一.前期准备 准备两个qq邮箱号,本例使用的是自己的两个邮箱 syc582535560@foxmail.com 2212444549@qq.com 下载javax.mail.jar jar包 ...
- java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例
这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...
最新文章
- winform DataGrid排序、去掉第一的空白列
- linux 7za下载,Linux安装7za
- mybatis批量插入oracle大量数据记录性能问题解决
- eof在c语言中表示什么_日语中的鍵为什么既能表示“钥匙”也能表示“锁”?...
- 微信小程序开发——字体样式设置
- 02-即时通讯-XMPP 简单介绍
- 爬虫一:用正则表达式爬取图片
- autoCAD2014安装激活
- android简单计算器源码
- 做了一个淘宝内部优惠券分享平台支持微信公众号以及网站
- SAP ABAP 系列丛书推荐:PP 报工
- 【转载】怎么设置博客背景
- #计划# 机器视觉 #视觉增强 #python #数据库 #算法 #深度学习 #迁移学习 #matlab #数据融合
- Hystrix断路器执行原理
- 高斯判别算法GDA(吴恩达机器学习c#实践,高斯模板上同心椭圆马氏距离画法,三)
- 樊登读书会终身成长读后感_终身成长读后感
- java项目斗地主介绍_详解java_ 集合综合案例:斗地主
- (一)arcpy开发利用arcpy在arcgis中批量裁剪影像
- Mac小技巧 | 如何在 Touch Bar 上显示歌词
- 讲给后台程序员看的前端系列教程(52)——Bootstrap轮播图
热门文章
- C#做了个相棋盘的图片
- 传智播客讲师_技术成果:来自两位全职讲师的播客如何帮助您最终获得编程
- 大云-L0-网络基础(二、三层)
- 记一次李姐SpringBean的生命周期
- 点击率和曝光率的区别是什么?
- pygame实现贪吃蛇
- [导入]“四大恶人”铁血股市
- 苏州空天信息研究院前端一面
- AverageMeter()函数介绍
- 计算机安装调试维修员五级算积分吗,计算机安装调试维修员(五级)理论知识.doc...