JSP笔记-发送邮件
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。 |
发送一封简单的邮件
这个例子展示了如何从您的机器发送一封简单的邮件。它假定localhost已经连接至网络并且有能力发送一封邮件。与此同时,请再一次确认mail.jar包和activation.jar包已经添加进CLASSPATH变量中。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%String result;// 收件人的电子邮件String to = "abcd@gmail.com";// 发件人的电子邮件String from = "mcmohd@gmail.com";// 假设你是从本地主机发送电子邮件String host = "localhost";// 获取系统属性对象Properties properties = System.getProperties();// 设置邮件服务器properties.setProperty("mail.smtp.host", host);// 获取默认的Session对象。Session mailSession = Session.getDefaultInstance(properties);try{// 创建一个默认的MimeMessage对象。MimeMessage message = new MimeMessage(mailSession);// 设置 From: 头部的header字段message.setFrom(new InternetAddress(from));// 设置 To: 头部的header字段message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// 设置 Subject: header字段message.setSubject("This is the Subject Line!");// 现在设置的实际消息message.setText("This is actual message");// 发送消息Transport.send(message);result = "Sent message successfully....";}catch (MessagingException mex) {mex.printStackTrace();result = "Error: unable to send message....";} %> <html> <head> <title>Send Email using JSP</title> </head> <body> <center> <h1>Send Email using JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
现在访问http://localhost:8080/SendEmail.jsp,它将会发送一封邮件给abcd@gmail.com 并显示如下结果:
Send Email using JSP Result: Sent message successfully....
如果想要把邮件发送给多人,下面列出的方法可以用来指明多个邮箱地址:
void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
参数的描述如下:
1.type:这个值将会被设置成 TO(收件人)、CC 或 BCC。CC 表示 Carbon Copy(抄送),BCC 表示 Blind Carbon Copy(密件抄送)。例子程序中使用的是 TO。
2.addresses:这是一个邮箱地址的数组,当指定邮箱地址时需要使用InternetAddress()方法。
发送一封HTML邮件
这个例子发送一封简单的HTML邮件。它假定您的localhost已经连接至网络并且有能力发送邮件。与此同时,请再一次确认mail.jar包和activation.jar包已经添加进CLASSPATH变量中。
这个例子和前一个例子非常相似,不过在这个例子中我们使用了setContent()方法,将"text/html"做为第二个参数传给它,用来表明消息中包含了HTML内容。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%String result;// 收件人的电子邮件String to = "abcd@gmail.com";// 发件人的电子邮件String from = "mcmohd@gmail.com";// 假设你是从本地主机发送电子邮件String host = "localhost";// 获取系统属性对象Properties properties = System.getProperties();// 设置邮件服务器properties.setProperty("mail.smtp.host", host);// 获取默认的Session对象。Session mailSession = Session.getDefaultInstance(properties);try{// 创建一个默认的MimeMessage对象。MimeMessage message = new MimeMessage(mailSession);// 设置 From: 头部的header字段message.setFrom(new InternetAddress(from));// 设置 To: 头部的header字段message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// 设置 Subject: header字段message.setSubject("This is the Subject Line!");// 设置 HTML消息message.setContent("<h1>This is actual message</h1>","text/html" );// 发送消息Transport.send(message);result = "Sent message successfully....";}catch (MessagingException mex) {mex.printStackTrace();result = "Error: unable to send message....";} %> <html> <head> <title>Send HTML Email using JSP</title> </head> <body> <center> <h1>Send Email using JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
现在你可以尝试使用以上JSP文件来发送HTML消息的电子邮件。
在邮件中包含附件
这个例子告诉我们如何发送一封包含附件的邮件。
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%String result;// 收件人的电子邮件String to = "abcd@gmail.com";// 发件人的电子邮件String from = "mcmohd@gmail.com";// 假设你是从本地主机发送电子邮件String host = "localhost";// 获取系统属性对象Properties properties = System.getProperties();// 设置邮件服务器properties.setProperty("mail.smtp.host", host);// 获取默认的Session对象。Session mailSession = Session.getDefaultInstance(properties);try{// 创建一个默认的MimeMessage对象。MimeMessage message = new MimeMessage(mailSession);// 设置 From: 头部的header字段message.setFrom(new InternetAddress(from));// 设置 To: 头部的header字段message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// 设置 Subject: header字段message.setSubject("This is the Subject Line!");// 创建消息部分BodyPart messageBodyPart = new MimeBodyPart();// 填充消息messageBodyPart.setText("This is message body");// 创建多媒体消息Multipart multipart = new MimeMultipart();// 设置文本消息部分multipart.addBodyPart(messageBodyPart);// 附件部分messageBodyPart = new MimeBodyPart();String filename = "file.txt";DataSource source = new FileDataSource(filename);messageBodyPart.setDataHandler(new DataHandler(source));messageBodyPart.setFileName(filename);multipart.addBodyPart(messageBodyPart);// 发送完整消息message.setContent(multipart );// 发送消息Transport.send(message);String title = "Send Email";result = "Sent message successfully....";}catch (MessagingException mex) {mex.printStackTrace();result = "Error: unable to send message....";} %> <html> <head> <title>Send Attachement Email using JSP</title> </head> <body> <center> <h1>Send Attachement Email using JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
用户认证部分
如果邮件服务器需要用户名和密码来进行用户认证的话,可以像下面这样来设置:
properties.setProperty("mail.user", "myuser");properties.setProperty("mail.password", "mypwd");
使用表单发送邮件
使用HTML表单接收一封邮件,并通过request对象获取所有邮件信息:
String to = request.getParameter("to"); String from = request.getParameter("from"); String subject = request.getParameter("subject"); String messageText = request.getParameter("body");
获取以上信息后,您就可以使用前面提到的例子来发送邮件了。
JSP笔记-发送邮件相关推荐
- 如实现在jsp中发送邮件
实现在jsp页面中发送邮件,可以结合Servlet来实现,步骤如下: (1).先在项目WebRoot--->META-INF文件夹下面建立一个名为:context.xml文件(context文件 ...
- JSP笔记-文件上传
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...
- JSP笔记-JavaBean
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...
- JSP笔记-页面重定向
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...
- JSP笔记-XML 数据处理
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...
- JSP笔记-点击量统计
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...
- CentOS+tomcat jsp笔记
一篇可以参考文章:https://www.cnblogs.com/Sabre/p/7513645.html 一开始我尝试自己写一个helloworld,打包成jar,作为引用,但是一直没成功,报错im ...
- 【JSP笔记】第三章 JSP内置对象【上】
2019独角兽企业重金招聘Python工程师标准>>> 1.内置对象简介:JSP内置对象是WEB容器创建的一组对象,不使用new关键就可以是用的对象. <% out.print ...
- Java 头像剪切及上传服务器JSP 笔记
头像存储真是个令人头疼的问题啊 效果: 视频没办法发,好不容易上传到B站结果这里告诉我格式错误 主要用到Java的JFrame文件选择器,然后用拦截方法过滤掉不是图片类型的文件. 用JFrame得到文 ...
最新文章
- Oracle已从2019年1月起收取Java费用
- 喜报!「神策 SA 分析师认证」第三期认证名单正式公布
- 单元测试线程代码的5个技巧
- 转:vim----复制粘贴
- kafka消息确认机制
- (Deep learning)深度卷积网络实战——第三部分
- HDU2007 平方和与立方和【入门】
- C#3.0入门系列(八)-之GroupBy操作
- 篮球30秒可控计时器
- 数据分析几大常见效应和定律。
- C语言I博客作业03
- 关于UE4中VR项目优化小记
- 计算机通识必修课程学什么内容,计算机通识课程教学平台研究与探索.doc
- AD与AAD区别和联系
- mac常用基本操作笔记
- 【LOJ6713】「EC Final 2019」狄利克雷 k 次根 加强版(狄利克雷生成函数)
- 基于SSM职业测评系统
- iOS 设备的屏幕尺寸
- python实现简单的四则运算_Python实现简单的四则运算计算器
- 法规标准-UN R158标准解读
热门文章
- 在参加了39场Kaggle比赛之后,有人总结了一份图像分割炼丹的「奇技淫巧」
- 深度学习如何挑选GPU?
- 用AI变身16岁女孩,抓住40岁违法警察!20岁男大学生钓鱼执法秀翻美国!
- 无重复字符串的排列组合
- Scrapy框架的概念、作用和工作流程
- 爬虫之lxml模块中etree.tostring函数的使用
- ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
- Python基础学习!容器:列表,元组,字典与集合!(2)
- C语言借助两个数的大小交换,引入指针。
- 性能SOTA,国防科技大学单张RGB-D图像预测物体对称性