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笔记-发送邮件相关推荐

  1. 如实现在jsp中发送邮件

    实现在jsp页面中发送邮件,可以结合Servlet来实现,步骤如下: (1).先在项目WebRoot--->META-INF文件夹下面建立一个名为:context.xml文件(context文件 ...

  2. JSP笔记-文件上传

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  3. JSP笔记-JavaBean

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  4. JSP笔记-页面重定向

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  5. JSP笔记-XML 数据处理

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  6. JSP笔记-点击量统计

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  7. CentOS+tomcat jsp笔记

    一篇可以参考文章:https://www.cnblogs.com/Sabre/p/7513645.html 一开始我尝试自己写一个helloworld,打包成jar,作为引用,但是一直没成功,报错im ...

  8. 【JSP笔记】第三章 JSP内置对象【上】

    2019独角兽企业重金招聘Python工程师标准>>> 1.内置对象简介:JSP内置对象是WEB容器创建的一组对象,不使用new关键就可以是用的对象. <% out.print ...

  9. Java 头像剪切及上传服务器JSP 笔记

    头像存储真是个令人头疼的问题啊 效果: 视频没办法发,好不容易上传到B站结果这里告诉我格式错误 主要用到Java的JFrame文件选择器,然后用拦截方法过滤掉不是图片类型的文件. 用JFrame得到文 ...

最新文章

  1. Oracle已从2019年1月起收取Java费用
  2. 喜报!「神策 SA 分析师认证」第三期认证名单正式公布
  3. 单元测试线程代码的5个技巧
  4. 转:vim----复制粘贴
  5. kafka消息确认机制
  6. (Deep learning)深度卷积网络实战——第三部分
  7. HDU2007 平方和与立方和【入门】
  8. C#3.0入门系列(八)-之GroupBy操作
  9. 篮球30秒可控计时器
  10. 数据分析几大常见效应和定律。
  11. C语言I博客作业03
  12. 关于UE4中VR项目优化小记
  13. 计算机通识必修课程学什么内容,计算机通识课程教学平台研究与探索.doc
  14. AD与AAD区别和联系
  15. mac常用基本操作笔记
  16. 【LOJ6713】「EC Final 2019」狄利克雷 k 次根 加强版(狄利克雷生成函数)
  17. 基于SSM职业测评系统
  18. iOS 设备的屏幕尺寸
  19. python实现简单的四则运算_Python实现简单的四则运算计算器
  20. 法规标准-UN R158标准解读

热门文章

  1. 在参加了39场Kaggle比赛之后,有人总结了一份图像分割炼丹的「奇技淫巧」
  2. 深度学习如何挑选GPU?
  3. 用AI变身16岁女孩,抓住40岁违法警察!20岁男大学生钓鱼执法秀翻美国!
  4. 无重复字符串的排列组合
  5. Scrapy框架的概念、作用和工作流程
  6. 爬虫之lxml模块中etree.tostring函数的使用
  7. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
  8. Python基础学习!容器:列表,元组,字典与集合!(2)
  9. C语言借助两个数的大小交换,引入指针。
  10. 性能SOTA,国防科技大学单张RGB-D图像预测物体对称性