JAVA邮件发送的授权码_java实现邮件发送
使用到的jar包:
Java实现纯文本邮件发送
1 packageorg.westos.email;2
3 importcom.sun.mail.util.MailSSLSocketFactory;4
5 import javax.mail.*;6 importjavax.mail.internet.InternetAddress;7 importjavax.mail.internet.MimeMessage;8 importjava.security.GeneralSecurityException;9 importjava.util.Properties;10
11 public classSendEamil {12 public static void main(String[] args) throwsMessagingException, GeneralSecurityException {13 //创建一个配置文件并保存
14 Properties properties = newProperties();15
16 properties.setProperty("mail.host","smtp.qq.com");17
18 properties.setProperty("mail.transport.protocol","smtp");19
20 properties.setProperty("mail.smtp.auth","true");21
22
23 //QQ存在一个特性设置SSL加密
24 MailSSLSocketFactory sf = newMailSSLSocketFactory();25 sf.setTrustAllHosts(true);26 properties.put("mail.smtp.ssl.enable", "true");27 properties.put("mail.smtp.ssl.socketFactory", sf);28
29 //创建一个session对象
30 Session session = Session.getDefaultInstance(properties, newAuthenticator() {31 @Override32 protectedPasswordAuthentication getPasswordAuthentication() {33 return new PasswordAuthentication("619046217@qq.com","16位授权码");34 }35 });36
37 //开启debug模式
38 session.setDebug(true);39
40 //获取连接对象
41 Transport transport =session.getTransport();42
43 //连接服务器
44 transport.connect("smtp.qq.com","619046217@qq.com","16位授权码");45
46 //创建邮件对象
47 MimeMessage mimeMessage = newMimeMessage(session);48
49 //邮件发送人
50 mimeMessage.setFrom(new InternetAddress("619046217@qq.com"));51
52 //邮件接收人
53 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("875203654@qq.com"));54
55 //邮件标题
56 mimeMessage.setSubject("Hello Mail");57
58 //邮件内容
59 mimeMessage.setContent("我的想法是把代码放进一个循环里","text/html;charset=UTF-8");60
61 //发送邮件
62 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());63
64 //关闭连接
65 transport.close();66 }67 }
Java实现文本图片附件复杂的邮件发送
MIME(多用途互联网邮件扩展类型)
MimeBodyPart类
javax.mail.internet.MimeBodyPart类 表示的是一个MIME消息,它和MimeMessage类一样都是从Part接口继承过来。
MimeMultipart类
javax.mail.internet.MimeMultipart是抽象类 Multipart的实现子类,它用来组合多个MIME消息。一个MimeMultipart对象可以包含多个代表MIME消息的MimeBodyPart对象
1 packageorg.westos.email;2
3 importcom.sun.mail.util.MailSSLSocketFactory;4
5 importjavax.activation.DataHandler;6 importjavax.activation.FileDataSource;7 import javax.mail.*;8 import javax.mail.internet.*;9 importjava.security.GeneralSecurityException;10 importjava.util.Properties;11
12 public classSendComplexEmail {13 public static void main(String[] args) throwsGeneralSecurityException, MessagingException {14 Properties prop = newProperties();15 prop.setProperty("mail.host", "smtp.qq.com"); 设置QQ邮件服务器16 prop.setProperty("mail.transport.protocol", "smtp"); //邮件发送协议
17 prop.setProperty("mail.smtp.auth", "true"); //需要验证用户名密码18
19 //QQ邮箱设置SSL加密
20 MailSSLSocketFactory sf = newMailSSLSocketFactory();21 sf.setTrustAllHosts(true);22 prop.put("mail.smtp.ssl.enable", "true");23 prop.put("mail.smtp.ssl.socketFactory", sf);24
25 //1、创建定义整个应用程序所需的环境信息的 Session 对象
26 Session session = Session.getDefaultInstance(prop, newAuthenticator() {27 @Override28 protectedPasswordAuthentication getPasswordAuthentication() {29 //传入发件人的姓名和授权码
30 return new PasswordAuthentication("619046217@qq.com","16位授权码");31 }32 });33
34 //2、通过session获取transport对象
35 Transport transport =session.getTransport();36
37 //3、通过transport对象邮箱用户名和授权码连接邮箱服务器
38 transport.connect("smtp.qq.com","619046217@qq.com","16位授权码");39
40 //4、创建邮件,传入session对象
41 MimeMessage mimeMessage =complexEmail(session);42
43 //5、发送邮件
44 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());45
46 //6、关闭连接
47 transport.close();48
49
50 }51
52 public static MimeMessage complexEmail(Session session) throwsMessagingException {53 //消息的固定信息
54 MimeMessage mimeMessage = newMimeMessage(session);55
56 //发件人
57 mimeMessage.setFrom(new InternetAddress("619046217@qq.com"));58 //收件人
59 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("619046217@qq.com"));60 //邮件标题
61 mimeMessage.setSubject("带图片和附件的邮件");62
63 //邮件内容64 //准备图片数据
65 MimeBodyPart image = newMimeBodyPart();66 DataHandler handler = new DataHandler(new FileDataSource("E:\\IdeaProjects\\WebEmail\\resources\\测试图片.png"));67 image.setDataHandler(handler);68 image.setContentID("test.png"); //设置图片id69
70 //准备文本
71 MimeBodyPart text = newMimeBodyPart();72 text.setContent("这是一段文本","text/html;charset=utf-8");73
74 //附件
75 MimeBodyPart appendix = newMimeBodyPart();76 appendix.setDataHandler(new DataHandler(new FileDataSource("E:\\IdeaProjects\\WebEmail\\resources\\测试文件.txt")));77 appendix.setFileName("test.txt");78
79 //拼装邮件正文
80 MimeMultipart mimeMultipart = newMimeMultipart();81 mimeMultipart.addBodyPart(image);82 mimeMultipart.addBodyPart(text);83 mimeMultipart.setSubType("related");//文本和图片内嵌成功84
85 //将拼装好的正文内容设置为主体
86 MimeBodyPart contentText = newMimeBodyPart();87 contentText.setContent(mimeMultipart);88
89 //拼接附件
90 MimeMultipart allFile = newMimeMultipart();91 allFile.addBodyPart(appendix);//附件
92 allFile.addBodyPart(contentText);//正文
93 allFile.setSubType("mixed"); //正文和附件都存在邮件中,所有类型设置为mixed94
95
96 //放到Message消息中
97 mimeMessage.setContent(allFile);98 mimeMessage.saveChanges();//保存修改
99
100 returnmimeMessage;101 }102 }
QQ邮箱授权码:
QQ邮箱需获取相应的权限:
QQ邮箱–>邮箱设置–>账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启POP3/SMTP服务,然后获取16位授权码(注意不要将授权码泄露,一个账户可以拥有多个授权码)
JAVA邮件发送的授权码_java实现邮件发送相关推荐
- java 32位授权码_Java实现OAuth2.0授权码方式
Java实现OAuth2.0授权码方式 前面介绍了OAuth2.0和授权方式,可以参考以下文章: 今天就用Java来验证OAuth2.0授权方式的授权码式,我们Spring Cloud的OAuth来实 ...
- smtp outlook邮件发送非授权码模式
1.起因:send fail SMTP AUTH extension not supported by server. 使用端口25 和587均失效出现此问题 首先前往outlook修改设置pop和I ...
- java给手机发短信_java给手机发送短信验证码
最近在做项目,分配到一个使用手机验证码实现快速登录的需求,好了No B B 了直接进入主题. 首先进入官网(http://www.miaodiyun.com/) 进行注册登录,这个不用教吧. 注册登录 ...
- 邮箱开启授权码(配置邮件客户端)
qq邮箱: 先登陆: 点击开启,然后进行发送短信开启. 然后发送短信,获取授权码.一个账号可以获取多个. 网易云:
- java微信支付接口源码_java微信支付源码(WxPayAPI_JAVA_v3)
[实例简介] [实例截图] [核心代码] package com.github.wxpay.sdk; import java.util.HashMap; import java.util.Map; i ...
- java短信接口源码_java免费短信接口开发源码
java免费短信接口开发源码 更多 作者:捷信通来源:www.jiexintong.cn日期:2014-07-30 17:08:51 微宏捷信通短信接口提供适应C#.Java..NET等多种主流开发语 ...
- php邮箱发送tp5源码,tp5 使用邮箱发送功能 PHPMailer
PHPMailer PHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以及可以添加附件发送,并不像 PHP 本身 mail() 函数需要服务器环境支持,您只需 ...
- java在线学习系统源码_java学习成长之路(基础,源码,项目,实战)
获取一下学习资源请关注微信公众号:Java编程指南 我为自学编程的或初学java的小伙伴们准备了一整套完整的学习资源和文章,还有我自己在自学路上的一些总结和学习线路,希望能帮到小伙伴们,如果有什么疑问 ...
- java长链接主动推送_java以post发送方式实现百度链接提交主动推送(实时)
怎么实现百度sitemap实时推送,首先,得拥有自己的网站,然后在百度站长上验证通过之后,才有资格推送百度sitemap. 如何选择链接提交方式,当然是选择最快的推送方式,主动推送, ...
- java在线学习系统源码_Java在线考试系统源码
今天给大家演示的是一款由jsp+mysql+ssm框架实现的学生在线考试系统,,今天这个考试系统功能比较完善,支持单选.多选.简答题型,试题可以批量导入,导入时可选择多种方式导入,比如导入到试题库,导 ...
最新文章
- mysql中拼接用什么_MySQL中常用的拼接语句的小结(代码示例)
- Qt Creator创建可缩放的按钮和边框
- 根据使用频率为 5 个字符设计的哈夫曼编码不可能是( )
- Java高级面试题!java构造方法的作用和特点
- JavaScript 数组 array.at() 获取数组中最后一个元素
- python主讲移动端自动化测试框架appium_Appium-移动端自动测试框架,如何入门?...
- 微课|中学生可以这样学Python(例7.4):队列
- java如何关闭creo,creo怎么把网页关掉
- 深度学习项目:歌词的自动生成
- 使用python制作ArcGIS插件(4)界面交互
- 2021第十届小美赛-“认证杯”数学中国数学建模国际赛
- word怎么删除参考文献的横线_2016版Word 中参考文献上面的横线是怎么去掉的啊,求助求助?...
- JAVA操作Excel 可配置,动态 生成复杂表头 复杂的中国式报表表头
- STM32F103_study54_The punctual atoms(STM32 There have always been questions about learning STM32)
- 7号团队-团队任务5:项目总结会
- mac打开airplay(隔空播放)
- 大律法(OTSU法)
- 陀螺仪程序---可直接用
- JS如何判断一个数组是否为空、是否包含某个值
- 三星移动硬盘不显示的解决
热门文章
- Apache POI TXT转成EXCEL(XLSX)
- live2d_明日方舟:聊聊可露希尔的live2d以及live2d制作
- MFC学习笔记(一)MFC基本知识介绍、建立MFC应用程序
- JSP编程中遇到的问题及解决
- 【CarMaker学习笔记】CarMaker Python API 接口使用方法
- carmaker/matlab联合仿真(三) 生成车道线点,拟合多项式方程
- adb连接 vivo_vivoadb工具包下载|vivo安卓adb工具1.0.32 最新版_ - 极光下载站
- 高斯分布matlab程序,生成高斯分布的matlab程序
- tbslog乱码转换_日文游戏乱码怎么办 乱码转换工具LocaleEmulator
- turbo c 混编 汇编语言,浅谈Turbo C过程调用汇编