热门标签 | 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);

推荐阅读
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 精选在线API编辑工具推荐
    本文将介绍几款优秀的在线API编辑工具,包括它们的功能特点和使用方法,帮助开发者提高工作效率。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 如何在服务器上配置SSL证书
    SSL证书是用于验证互联网上身份的一种数字凭证,通过启用HTTPS协议,确保用户与服务器之间的通信安全。本文将详细介绍如何在API和服务器上配置SSL证书,以提升网站的安全性和可信度。 ... [详细]
  • 多线程基础概览
    本文探讨了多线程的起源及其在现代编程中的重要性。线程的引入是为了增强进程的稳定性,确保一个进程的崩溃不会影响其他进程。而进程的存在则是为了保障操作系统的稳定运行,防止单一应用程序的错误导致整个系统的崩溃。线程作为进程的逻辑单元,多个线程共享同一CPU,需要合理调度以避免资源竞争。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
author-avatar
0o可人儿o0_962
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有