JSP与JavaMail (五)

本文详细介绍了如何使用JavaMail API发送带有多种类型附件的电子邮件,包括自定义文本附件、本地文件附件及远程文件附件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 6.发送三种类型的附件 前面我们已学会了发送一般文本邮件和超文本邮件,今天我们将让大家学会编写三种类型的附件的邮件 发送程序.(注:撰写界面仍然用前面的) <%@ page contentType="text/html;charset=GB2312" %> <%request.setCharacterEncoding("gb2312");%> <%@ page import="java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*"%> <%@ page import="javax.activation.*"%><!--要发送附件必须引入该库--> <%@ page import="java.net.*"%><!--要用到URL类--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>发送成功</title> </head> <body> <% try{ String tto=request.getParameter("to"); String ttitle=request.getParameter("title"); String tcontent=request.getParameter("content"); Properties props=new Properties(); props.put("mail.smtp.host","127.0.0.1"); props.put("mail.smtp.auth","true"); Session s=Session.getInstance(props); s.setDebug(true); MimeMessage message=new MimeMessage(s); //给消息对象设置发件人/收件人/主题/发信时间 InternetAddress from=new InternetAddress("xxf@cafe.com"); message.setFrom(from); InternetAddress to=new InternetAddress(tto); message.setRecipient(Message.RecipientType.TO,to); message.setSubject(ttitle); message.setSentDate(new Date()); Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象 //设置信件文本内容 BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象 mdp.setContent(tcontent,"text/html;charset=gb2312");//给BodyPart对象设置内容和格式/编码方式 mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中 //设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送) mdp=new MimeBodyPart();//新建一个存放附件的BodyPart DataHandler dh=new DataHandler("JavaMail附件测试","text/plain;charset=gb2312"); //新建一个DataHandler对象,并设置其内容和格式/编码方式 mdp.setFileName("xxf.txt");//加上这句将作为附件发送,否则将作为信件的文本内容 mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中 //设置信件的附件2(用本地上的文件作为附件) mdp=new MimeBodyPart(); FileDataSource fds=new FileDataSource("g:/xx.txt"); dh=new DataHandler(fds); mdp.setFileName("dd.txt");//可以和原文件名不一致 mdp.setDataHandler(dh); mm.addBodyPart(mdp); //设置信件的附件3(用远程文件作为附件) mdp=new MimeBodyPart(); URLDataSource ur=new URLDataSource(new URL("http://localhost:8080/jspstudy/email/xx.gif")); //注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下. dh=new DataHandler(ur); mdp.setFileName("ss.txt"); mdp.setDataHandler(dh); mm.addBodyPart(mdp); message.setContent(mm);//把mm作为消息对象的内容 message.saveChanges(); Transport transport=s.getTransport("smtp"); transport.connect("127.0.0.1","xxf","coffee"); transport.sendMessage(message,message.getAllRecipients()); transport.close(); %> <div align="center"> <p><font color="#FF6600">发送成功!</font></p> <p><a href="recmail.jsp">去看看我的信箱</a><br> <br> <a href="index.htm">再发一封</a> </p> </div> <% }catch(MessagingException e){ out.println(e.toString()); } %> </body> </html> 发送附件是不是很有趣呢?但是在这里由于没有修改撰写界面,要发送的附件只能在程序里固定,所以一点都不灵活.不用担心,下一次我们将重写撰写界面,当然同时也会修改邮件处理程序,到时我们将能灵活地发送自己的邮件. (待续)
资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外, v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值