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

JavaMail组件实现邮件功能

实现邮件收发功能需要3个jar包:1.JavaMail组件保内的mail.jar和smtp.jar包2.JAF组件包里的activition.jar。复制到WebRo

实现邮件收发功能需要3个jar包:

               1.JavaMail组件保内的mail.jar和smtp.jar包

               2.JAF组件包里的activition.jar。

               复制到WebRoot/WEB-INF/lib目录下。

  一、编写index.jsp页面,具体代码如下:

1 <%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;gb2312"
2 pageEncoding&#61;"gb2312"%>
3 DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;gb2312">
7 <title>welcometitle>
8 head>
9 <body>
10 <form action&#61;"sendMail.jsp" method&#61;"post" name&#61;"form1">
11 <table width&#61;"75" border&#61;"0" align&#61;"center" cellspacing&#61;"1"
12 bgcolor&#61;"#006600" class&#61;"black">
13 <tr bgcolor&#61;"#ffffff">
14 <td width&#61;"24%">收信人地址&#xff1a;td>
15 <td width&#61;"76%"><input name&#61;"to" type&#61;"text" id&#61;"to">td>
16 tr>
17 <tr bgcolor&#61;"#ffffff">
18 <td >主题&#xff1a;td>
19 <td ><input name&#61;"title" type&#61;"text" id&#61;"title">td>
20 tr>
21 <tr>
22 <td height&#61;"18" colspan&#61;"2" bgcolor&#61;"#ffffff">
23 信件类型
24 <select name&#61;"emailtype" id&#61;"emailtype">
25 <option value&#61;"text/plain" selected>Textoption>
26 <option value&#61;"text/html" selected>Htmloption>
27 select>
28 td>
29 tr>
30 <tr>
31 <td height&#61;"53" colspan&#61;"2" bgcolor&#61;"#ffffff">
32 <textarea rows&#61;"5" cols&#61;"50" name&#61;"content" id&#61;"content">textarea>
33 td>
34 tr>
35 <tr align&#61;"center">
36 <td colspan&#61;"2" bgcolor&#61;"#ffffff">
37 附件1&#xff08;自定义&#xff09;&#xff1a;
38 <input name&#61;"fj1" type&#61;"text" id&#61;"fj1">
39 (输入文本信息)
40 td>
41 tr>
42 <tr align&#61;"center" valign&#61;"bottom">
43 <td colspan&#61;"2" bgcolor&#61;"#ffffff">
44 附件2&#xff08;本地&#xff09;&#xff1a;
45 <input name&#61;"fj2" type&#61;"file" id&#61;"fj2" size&#61;"10">
46 td>
47 tr>
48 <tr align&#61;"center" >
49 <td colspan&#61;"2" bgcolor&#61;"#ffffff">
50 附件3&#xff08;远程&#xff09;&#xff1a;
51 <input name&#61;"fj3" type&#61;"text" id&#61;"fj3" value&#61;"http://">
52 (输入URL)
53 td>
54 tr>
55 <tr align&#61;"center" >
56 <td colspan&#61;"2" bgcolor&#61;"#ffffff">
57
58 <input name&#61;"submit" type&#61;"submit" value&#61;"发送">
59 <input name&#61;"submit2" type&#61;"reset" value&#61;"重置">
60 td>
61 tr>
62 table>
63 form>
64 body>
65 html>

 二、创建sendMail.jsp页面&#xff0c;具体代码如下&#xff1a;

 

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;gb2312"pageEncoding&#61;"gb2312"%>
<%request.setCharacterEncoding("gb2312"); %>
<%&#64; page import&#61;"java.util.*,javax.mail.*" %>
<%&#64; page import&#61;"javax.mail.internet.*"%>
<%&#64; page import&#61;"javax.activation.*" %>
<%&#64; page import&#61;"java.net.*" %>







<%try{ String tto&#61;request.getParameter("to");String ttitle&#61;request.getParameter("title");String emailtype&#61;request.getParameter("emailtype");String tcontent&#61;request.getParameter("content");String tfj1&#61;request.getParameter("fj1");String tfj2&#61;request.getParameter("fj2");String tfj3&#61;request.getParameter("fj3");//声明properities存储发件服务器信息Properties props&#61;new Properties();props.put("mail.smtp.host", "smtp.qq.com");props.put("mail.smtp.auth", "true");//创建邮件回话Session s&#61;Session.getInstance(props);s.setDebug(true);//创建一个消息对象MimeMessage message&#61;new MimeMessage(s);InternetAddress from&#61;new InternetAddress("393743083&#64;qq.com");message.setFrom(from);InternetAddress to&#61;new InternetAddress(tto);message.setRecipient(Message.RecipientType.TO, to);message.setSubject(ttitle);message.setSentDate(new Date());Multipart mm &#61; new MimeMultipart();BodyPart mdp&#61;new MimeBodyPart();mdp.setContent(tcontent, emailtype&#43;";charset&#61;gb2312");mm.addBodyPart(mdp);//附件1mdp&#61;new MimeBodyPart();DataHandler dh&#61;new DataHandler(tfj1,"text/plain;charset&#61;gb2312");mdp.setFileName("text.txt");mdp.setDataHandler(dh);mm.addBodyPart(mdp);//附件2mdp&#61;new MimeBodyPart();FileDataSource fds&#61;new FileDataSource(tfj2);dh&#61;new DataHandler(fds);int ddd&#61;tfj2.lastIndexOf("\\");String fname&#61;tfj2.substring(ddd);String ffname&#61;new String(fname.getBytes("gb2312"),"ISO8859-1");mdp.setFileName(ffname);mdp.setDataHandler(dh);mm.addBodyPart(mdp);//附件3mdp&#61;new MimeBodyPart();URL urlfj&#61;new URL(tfj3);URLDataSource ur&#61;new URLDataSource(urlfj);dh&#61;new DataHandler(ur);int ttt&#61;tfj3.lastIndexOf("/");String urlname&#61;tfj3.substring(ttt);mdp.setFileName(urlname);mdp.setDataHandler(dh);mm.addBodyPart(mdp);message.setContent(mm);message.saveChanges();//发送邮件Transport transport&#61;s.getTransport("smtp");transport.connect("smtp.qq.com",用户名,密码);transport.sendMessage(message, message.getAllRecipients());transport.close();%>

发送成功


再来一封
<%}catch(MessagingException e){ out.println(e.toString());}%>


  注&#xff1a;腾讯邮箱需要开通smtp功能。


转:https://www.cnblogs.com/rain-tl/p/4853753.html



推荐阅读
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 数据库多表联合查询:内连接与外连接详解
    在数据库的多表查询中,内连接和外连接是两种常用的技术手段。内连接用于检索多个表中相互匹配的记录,即只有当两个表中的记录满足特定的连接条件时,这些记录才会被包含在查询结果中。相比之下,外连接则不仅返回匹配的记录,还可以选择性地返回不匹配的记录,具体取决于左外连接、右外连接或全外连接的选择。本文将详细解析这两种连接方式的使用场景及其语法结构,帮助读者更好地理解和应用多表查询技术。 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • 在Django中提交表单时遇到值错误问题如何解决?
    在Django项目中,当用户提交包含多个选择目标的表单时,可能会遇到值错误问题。本文将探讨如何通过优化表单处理逻辑和验证机制来有效解决这一问题,确保表单数据的准确性和完整性。 ... [详细]
  • Java能否直接通过HTTP将字节流绕过HEAP写入SD卡? ... [详细]
  • 本文详细探讨了 jQuery 中 `ajaxSubmit` 方法的使用技巧及其应用场景。首先,介绍了如何正确引入必要的脚本文件,如 `jquery.form.js` 和 `jquery-1.8.0.min.js`。接着,通过具体示例展示了如何利用 `ajaxSubmit` 方法实现表单的异步提交,包括数据的发送、接收和处理。此外,还讨论了该方法在不同场景下的应用,如文件上传、表单验证和动态更新页面内容等,提供了丰富的代码示例和最佳实践建议。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
author-avatar
门前西瓜飘乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有