热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

放入_javaweb网页实现邮箱发送

篇首语:本文由编程笔记#小编为大家整理,主要介绍了javaweb网页实现邮箱发送相关的知识,希望对你有一定的参考价值。网页邮件传输邮

篇首语:本文由编程笔记#小编为大家整理,主要介绍了javaweb网页实现邮箱发送相关的知识,希望对你有一定的参考价值。



网页邮件传输

邮箱的传输原理


导入相关依赖


<dependency>
<groupId>javax.activationgroupId>
<artifactId>activationartifactId>
<version>1.1.1version>
dependency>


<dependency>
<groupId>javax.mailgroupId>
<artifactId>javax.mail-apiartifactId>
<version>1.4.7version>
dependency>

获取QQ的授权码

点击进入QQ邮箱

点击设置&#xff0c;往下拉&#xff0c;直到看见pop3等各种服务&#xff0c;开启pop3/STMP服务


文本邮件的发送


  • 我们需要封装传输的对象

Properties prop&#61;new Properties();
prop.setProperty("mail.host","smtp.qq.com");///设置QQ邮件服务器
prop.setProperty("mail.transport.protocol","smtp");///邮件发送协议
prop.setProperty("mail.smtp.auth","true");//需要验证用户密码
//QQ邮箱需要设置SSL加密
MailSSLSocketFactory sf&#61;new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable","true");
prop.put("mail.smtp.ssl.socketFactory",sf);

  • 发送邮箱的5个步骤

  1. 创建session对象

//1.创建定义整个应用程序所需要的环境信息的session对象
Session session&#61;Session.getDefaultInstance(prop, new Authenticator()
&#64;Override
protected PasswordAuthentication getPasswordAuthentication()
return new PasswordAuthentication("XXXX&#64;qq.com","授权码");

);
//开启session的debug模式&#xff0c;这样可以查看到程序发送Email的运行状态
session.setDebug(true);

  1. 通过session得到transport对象

Transport ts&#61;session.getTransport();

  1. 通过用户名和授权码连接邮箱

ts.connect("smtp.qq.com","XXXX&#64;qq.com","授权码");

  1. 创建邮箱

//注意需要传递session
MimeMessage message&#61;new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress("XXXX&#64;qq.com"));
//指明邮件的收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("XXXX&#64;qq.com"));
//邮件标题
message.setSubject("发送的标题");
//邮件的文本内容
message.setContent("内容","text/html;charset&#61;UTF-8");

  1. 发送邮箱

ts.sendMessage(message,message.getAllRecipients());
//关闭连接
ts.close();

邮箱发送图片

只需要更改创建邮箱的文本内容&#xff0c;设置成为图片等资源可以发送的模式

MimeBodyPart image&#61;new MimeBodyPart();
//图片需要经过数据化的处理
DataHandler dh&#61;new DataHandler(new FileDataSource("D:\\\\Bert\\\\1594126632(1).jpg"));
//在part中放入这个处理过图片的数据
image.setDataHandler(dh);
//给这个part设置一个ID名字
image.setContentID("bz.jpg");
//准备正文的数据
MimeBodyPart text&#61;new MimeBodyPart();
text.setContent("这是一张正文","text/html;charset&#61;UTF-8");
//描述数据关系
MimeMultipart mm&#61;new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related");
//设置到消息中&#xff0c;保存修改
message.setContent(mm);
message.saveChanges();

邮箱发送附件

在邮箱发送图片的地方多增加一个发送附件的方法

MimeBodyPart body1&#61; new MimeBodyPart();
body1.setDataHandler(new DataHandler(new FileDataSource("D:\\\\Bert\\\\cmd.txt")));
body1.setFileName("1.txt");
//描述数据关系
MimeMultipart mm&#61;new MimeMultipart();
mm.addBodyPart(body1);
mm.addBodyPart(text);

推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
author-avatar
0o可人儿o0_962
这个家伙很懒,什么也没留下!