javaWeb学习--------邮件发送
邮件发送
1.邮件收发原理
2.邮箱传输协议
SMTP——发送协议
POP——接收协议
3.Java发送邮件
使用java发送e-mail十分简单,首先应该准备JavaMail API和Java Activation Framework
得到两个jar包:
- mail.jar
- activation.jar
4.核心类
5.实现
导入jar包
5.1简单邮件:没有附件和图片,纯文本邮件
qq邮箱中获取相应的权限
代码:
public class Main {//简单邮件:纯文本内容//复杂邮件:文本+图片+附件//要发送邮件需要获取协议,开启POP3和SMTP服务public static void main(String[] args) throws Exception {Properties prop = new Properties();//创建一封邮件//以下三项的Key的值都是固定的prop.setProperty("mail.host","smtp.qq.c om");//设置邮件服务器prop.setProperty("mail.transport.protocol","smtp");//设置邮件发送协议prop.setProperty("mail.smtp.auth","true");//需要验证用户名和密码//如果是QQ邮箱,还要设置SSL加密,加上以下代码即可MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);prop.put("mail.smtp.ssl.enable","true");prop.put("mail.smtp.ssl.socketFactory",sf);//==========使用JavaMail发送邮件的6个步骤======//1、创建定义整个应用程序所需要的环境信息的Session对象Session session = Session.getDefaultInstance(prop, new Authenticator() {public PasswordAuthentication getPasswordAuthentication(){//发件人邮箱的用户名和授权码(只有qq是授权码,其它的是密码)return new PasswordAuthentication("1612893803@qq.com","授权码");}});//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态session.setDebug(true);//2、通过Session得到transport对象Transport ts = session.getTransport();//3、使用邮箱的用户名和授权码连上邮件服务器ts.connect("SMTP.qq.com","1612893803@qq.com","授权码");//4、创建邮件//创建邮件对象MimeMessage message = new MimeMessage(session);//指明邮件的发件人message.setFrom(new InternetAddress("1612893803@qq.com"));//指明邮件的收件人message.setRecipient(Message.RecipientType.TO,new InternetAddress("212694926@qq.com"));//邮件的标题message.setSubject("只是一个普通的纯文本邮件");//邮件的文本内容message.setContent("你好哇,我来了!","text/html;charset=UTF-8");//5、发送邮件ts.sendMessage(message,message.getAllRecipients());//6、关闭连接ts.close();}
5.2复杂邮件:有附件和图片
附件格式包含关系
public class sendMail02 {//简单邮件:纯文本内容//复杂邮件:文本+图片+附件/**MimeMessage类表示整封邮件。*MimeBodyPart类表示邮件的一个MIME消息。*MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。*///要发送邮件需要获取协议,开启POP3和SMTP服务public static void main(String[] args) throws Exception {Properties prop = new Properties();//创建一封邮件//以下三项的Key的值都是固定的prop.setProperty("mail.host","smtp.qq.com");//设置邮件服务器prop.setProperty("mail.transport.protocol","smtp");//设置邮件发送协议prop.setProperty("mail.smtp.auth","true");//需要验证用户名和密码//如果是QQ邮箱,还要设置SSL加密,加上以下代码即可MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);prop.put("mail.smtp.ssl.enable","true");prop.put("mail.smtp.ssl.socketFactory",sf);//==========使用JavaMail发送邮件的6个步骤======//变量名字定义的有点乱,不想改了。将就下吧//1、创建定义整个应用程序所需要的环境信息的Session对象Session session = Session.getDefaultInstance(prop, new Authenticator() {public PasswordAuthentication getPasswordAuthentication(){//发件人邮箱的用户名和授权码return new PasswordAuthentication("1612893803@qq.com","授权码");}});//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态session.setDebug(true);//2、通过Session得到transport对象Transport ts = session.getTransport();//3、使用邮箱的用户名和授权码连上邮件服务器ts.connect("SMTP.qq.com","1612893803@qq.com","授权码");//4、创建邮件//创建邮件对象MimeMessage message = new MimeMessage(session);//指明邮件的发件人message.setFrom(new InternetAddress("1612893803@qq.com"));//指明邮件的收件人message.setRecipient(Message.RecipientType.TO,new InternetAddress("212694926@qq.com"));//邮件的标题message.setSubject("这是一个有文本、图片、附件的邮件");//邮件的内容//=================================================//准备图片数据 DataHandler:处理除文本外的数据MimeBodyPart image = new MimeBodyPart();DataHandler dh = new DataHandler(new FileDataSource("C:\\Users\\Think\\Documents\\image-20200220200136289.png"));image.setDataHandler(dh);image.setContentID("xx.png");//设置图片ID//ContentID用于为“multipart/related”组合消息中的内嵌资源指定一个唯一标识号,在HTML格式的正文中可以使用这个唯一标识号来引用该内嵌资源。//注意,在引用Content-ID头字段标识的内嵌资源时,要在资源的唯一标识号前面加上“cid:”,以说明要采用唯一标识号对资源进行引用。//准备正文数据MimeBodyPart text = new MimeBodyPart();text.setContent("这是一个带图片、文本、附件<img src='cid:xx.png'>的邮件","text/html;charset=UTF-8");//准备附件数据MimeBodyPart accessory = new MimeBodyPart();DataHandler dh2 = new DataHandler(new FileDataSource("C:\\Users\\Think\\Pictures\\Saved Pictures\\illust_70110900_20191209_012234.jpg"));accessory.setDataHandler(dh2);accessory.setFileName(MimeUtility.encodeText("yan"));//给附件一个名字,发过去显示的就是这个设定的名字||MimeUtility.encodeText("")解决附件发送过去乱码;//*****************************!!!!!!!**********************/*MimeBodyPart:表示复杂邮件的一个组成部分,它可以表示文本,附件,图片DataHandler:表示可以读取图片或附件MimeMultipart:表示二个邮件组成部分的关系,文本和图片的关系是"related"关系Content-ID:表示图片的编号related:图片|| mixed:附件*///*****************************!!!!!!!**********************//拼接图片和文本MimeMultipart mm = new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(image);mm.setSubType("related");//将文本+图片封装成邮件的组成部分,即将关系看作成一个部分MimeBodyPart context = new MimeBodyPart();context.setContent(mm);//把附件也加上MimeMultipart file = new MimeMultipart();file.addBodyPart(context);file.addBodyPart(accessory);file.setSubType("mixed");//放到消息中message.setContent(file);//把编辑好的内容放入消息中message.saveChanges();//保存修改!//=================================================//5、发送邮件ts.sendMessage(message,message.getAllRecipients());//message:发送的消息||message.getAllRecipients():获取保存在里面的地址//6、关闭连接ts.close();}//对于,复杂类型的邮件,位置关系特别注意和加入的顺利要一致
}
javaWeb学习--------邮件发送相关推荐
- JavaWeb(三):java和javaWeb实现邮件发送
JavaWeb-实现邮件发送 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV12J41137hu?p=1 学习资料笔记:csdn dream_F ...
- javaWeb实现邮件发送
本内容主要用于java代码中,邮件的发送,具体步骤分成以下三点: 1.开启邮箱POP3服务 邮箱->设置->账户 开启POP3服务 点击生成授权码获取授权码 此授权码在之后将作为邮箱密码 ...
- SpringBoot整合邮件发送
本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringBoot相关知识相关知识,打造完整的SpringBoot学习步骤,提升工程化编码能力和思维能力,写出高质量代码.希望大家都能够从中有所收 ...
- java web 邮件_JavaWeb实现邮件发送接收功能
一.邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu. ...
- JavaWeb学习总结(五十一)——邮件的发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- JavaMail邮件发送,网页、客户端详解-JavaWeb学习6.9
JavaMail邮件发送 JavaMail发送邮件 笔记 导入mail.jar包 eclipse编写时的目录 网页上发送邮件 采用qq邮箱和网易邮箱 代码 客户端发送邮箱 客户端采用foxmail 服 ...
- 邮件发送 --- 纯Java、JavaWeb、Spring三种实现方式
邮件发送学习笔记~ 一.邮件发送介绍 要在网络上实现邮件功能,必须要有专门的邮件服务器! 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中! ...
- JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
JavaWeb学习总结(五十二)--使用JavaMail创建邮件和发送邮件 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两 ...
- 【狂神说】JavaWeb笔记整理 | SMBMS项目 | 文件上传和邮件发送
目录 JavaWeb 1.基本概念 1.1 概念 1.2 web应用程序: 1.3 静态web 1.4 动态web 2.web服务器 2.1 技术讲解 2.2 web 服务器 3. Tomcat 3. ...
- JavaWeb邮件发送
邮件发送 1.邮件发送原理图 2.jar包的支持 mail-1.4.7.jar activation-1.1.1.jar 3.授权码的获取 4.简易文本邮件发送的实现 5.实现步骤 创建session ...
最新文章
- 三星15TB固态硬盘开卖 售价高达10000美元
- 关于 Oracle DB CONSTRAINT约束的一些SQL ORA-02292: integrity constraint violated
- MVC View显示详解(RenderBody,RenderPage,RenderSection,Partial)
- java中随机数边界问题,java 简单Dice问题(随机数的运用)
- 邮票的孔怎么做出来的_金银花茶是怎么做出来的呢
- Fourier变换、Laplace变换与广义函数总结
- fetchxml 汇总_Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧
- Chrome 45 减少了内存占用
- Centos 8 安装和配置 VNC 服务,让 MAC 可以远程桌面管理Centos(linux)
- 190702每日一句 孤独之前是迷茫,孤独之后是成长
- Xshell、Xftp免费版获取教程
- OC语言基础十:OC文件操作
- 火山视频在一键去水印网站上解析教程,火山视频去水印教程
- python可以做回归分析吗_使用python进行回归分析
- Alfresco文档管理系统 文档
- 计算机加法器原理,加法器原理
- 11:Hive从0到1系列学习:函数之常用的内置函数
- Spring Cloud 基本理论概述
- Unity 之 ShaderGraph 护盾
- HTML+CSS大风车及十字架的实现