jsp发送邮件邮箱
我们每次发信都要先进入邮箱,然后才能写信(突然一天我的邮箱密码丢了,我进不了邮件了,那可不可以不进邮箱就能给朋友发信呢,现在我告诉你:这是可以的~
此程序的功能就在此,你可以把它用在论坛上,打开这个程序窗口发送邮件,你也可以把它放在你的桌面上,随心所欲地发送邮件(当然作为一个程序员,你还可以把它拿过来
一下,看有没有可学知识(
由于发送HTML类型邮件的
思想和此类似,所以不在一一列出(程序源码则分别列出(
一(
思路:
二(程序源码:
(,) 发送文本类型信件(这种是接收者收到后打开信箱后直接显示在邮件正
文的(它主要有两个程序: mailform.html and sendmail.jsp,另外三个程序为
提交成功和不成功及发生内部错误的处理程序(
mailform.html用来输入用户信息,然后提交表单给sendmail.jsp
sendmail.jsp 用来处理接收信息并处理信息,最后发送邮件(
<%--mailform.html 的源代码--%>
mailform.html
<%--sendmail.jsp 的源代码--%>
<%@page contentType="text/html;charset=gb2312"%> <%@page errorPage="errpage.jsp"%>
<%@page import="java.util.*"%>
<%@page import="javax.mail.*"%>
<%@page import="javax.mail.internet.*"%>
<%@page import="javax.activation.*"%>
sendmail.jsp
<%
//邮件服务器的IP地址,注意此时使用的是SMTP 邮件服务器
//String host="202.102.240.76";
//获取用户信息
String to=request.getParameter("to");
String from=request.getParameter("from");
String cc=request.getParameter("cc");
String bcc=request.getParameter("bcc");
//结合本程序的第一句,共同起显示汉字体的功能
String subject=request.getParameter("subject");
subject = new java.lang.String(subject.getBytes("iso-8859-1"));
//以上方法等同于以下两句,原理相同
//byte[]
subjectTemp=request.getParameter("subject").getBytes("ISO8859_1");
//String subject=new String(subjectTemp); byte[]
messageTextTemp=request.getParameter("body").getBytes("ISO8859_1");
String messageText= new String(messageTextTemp);
boolean sessionDebug = false;
//验证所填写的邮件是否正确
if((to.trim().indexOf("@")==-1)||(to.trim().length()<5)){ %>
<%
}
if((from.trim().indexOf("@")==-1)||(from.trim().length()<5)){
%>
<%
}
//获得系统属性对象,用下两句的任一句均可
//Properties props = System.getProperties();
Properties props=new Properties();
//设置SMTP主机
//以下一句是对任意的SMTP 邮件服务器均可,并且有了这一句,将不用设
置传输
了
props.put("mail.smtp.host", "smtp.jspinsider.com"); //这样将确定接收方的邮件服务器主机,
//props.put("mail.host",host);
//设置邮件传输协议方式
//props.put("mail.transport.protocol","smtp"); //获取邮件会话对象
Session mailSession = Session.getDefaultInstance(props,null); mailSession.setDebug(sessionDebug);
try{
//创建MIME邮件对象
Message msg = new MimeMessage(mailSession);
//设置发信人
msg.setFrom(new InternetAddress(from));
//设置收信人
InternetAddress[] addressTo = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,addressTo);
//设置抄送人
if(cc.trim().length()!=0){
InternetAddress[] addressCc = {new InternetAddress(cc)};
msg.setRecipients(Message.RecipientType.CC,addressCc);
}
//设置暗送人
if(bcc.trim().length()!=0){
InternetAddress[] addressBcc = {new InternetAddress(bcc)};
msg.setRecipients(Message.RecipientType.BCC,addressBcc);
}
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);
//发送邮件
Transport.send(msg);
}
catch(Exception ex){
out.println("sending failed!");
}
%>
<%-- sendok.jsp发送成功的页面--%>
<%@ page contentType="text/html;charset=gb2312"%>
sendok.jsp
发送成功!
收件人 | <%=request.getParameter("to")%> |
主题: | <%byte[]
subjectTemp=request.getParameter("subject").getBytes("ISO8859_1");
String subject =new String(subjectTemp); out.println(subject);
%>
|
继续发送
|
<%- errpage.jsp发生内部错误的程序---%>
errpage.jsp
出现内部错误
<%-- err.jsp 输入有误时的错误提示----%>
err.jsp
输入非法
(,)HTML类型信件(这种邮件是作为附件接收,收到后把附件打开时是HTML文件(你写入的信件正文在附件的HTML文件里(这个程序主要有两个文件form.html and send.jsp (form.html 用来输入信息表单,send.jsp用作接收信息并处理信息和发送邮件(但这个程序要用到java程序来处理发送(HTML.java 用作发送邮件时调用的,StringDataSource.Java用作汉字显示处理时调用的,注意使用这两个文件时要放在对应的WEB-INF/classes 文件夹下(
mailform.html
<%@page errorPage="errpage.jsp"%> <%
//变量声明
java.lang.String smtp,from,to,cc,bcc,subject,body;
//获得用户输入数据
smtp = request.getParameter("smtp"); from = request.getParameter("from"); to = request.getParameter("to"); cc = request.getParameter("cc"); bcc = request.getParameter("bcc"); subject = request.getParameter("subject"); if(subject!=null){
subject = new java.lang.String(subject.getBytes("iso-8859-1"));
}
body = request.getParameter("body"); //发送留言
mymail.mail.HTML.send(smtp,from,to,cc,bcc,subject,body);
%>
/*HTML.java*/
/*
* 功能:用作调用send() 方法来发送邮件
*
* mymail.mail.HTML.Java
* package mymail.mail;
*/
public final class HTML
{
public static void send(
java.lang.String smtp, /*SMTP主机地址*/
java.lang.String from, /*发信人*/
java.lang.String to, /*收信人*/
java.lang.String cc, /*抄送人*/
java.lang.String bcc, /*暗送人*/
java.lang.String subject, /*主题*/
java.lang.String body /*内容*/
) throws java.lang.Exception{
//变量声明
java.util.Properties props; //系统属性
javax.mail.Session mailSession; //邮件会话对象
javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象 //设置系统属性
props = java.lang.System.getProperties(); //获得系统属性对象
props.put("mail.smtp.host",smtp); //设置SMTP主机
//获得邮件会话对象
mailSession = javax.mail.Session.getDefaultInstance(props,null);
//创建MIME邮件对象
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
//设置发信人
mimeMsg.setFrom(new javax.mail.internet.InternetAddress(from));
//设置收信人
if(to!=null)
{
mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,javax.m
ail.
internet.InternetAddress.parse(to));
}
//设置抄送人
if(cc!=null)
{
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,javax.mail.
internet.InternetAddress.parse(cc));
}
//设置暗送人
if(bcc!=null)
{
mimeMsg.setRecipients
(javax.mail.Message.RecipientType.BCC,javax.mail.internet.InternetAdd
ress.parse(bcc));
}
//设置邮件主题
//mimeMsg.setSubject(subject);
mimeMsg.setSubject(subject,"gb2312");
//设置邮件内容,将邮件body部分转化为HTML格式
mimeMsg.setDataHandler
(new javax.activation.DataHandler(new mymail.jaf.StringDataSource
(body,"text/html")));
//发送邮件
javax.mail.Transport.send(mimeMsg);
}
}
/* StringDataSource.Java */
/*
* 功能:将文本型转化为HTML 格式
* 注意引入的 jaf包
*
*/
package mymail.jaf;
//mymail.jaf.StringDataSource.Java //import javax.activation.*;
public class StringDataSource implements javax.activation.DataSource{
private java.lang.String data;
private java.lang.String type;
public StringDataSource(java.lang.String data,java.lang.String type)
{
this.data = data;
this.type = type;
}
public java.io.InputStream getInputStream() throws java.io.IOException
{
return new java.io.StringBufferInputStream(data);
}
public java.io.OutputStream getOutputStream() throws
java.io.IOException
{
throw new java.io.IOException("it does not support this method now!");
}
public java.lang.String getContentType(){
return type;
}
public java.lang.String getName(){
return " mymail ";
}
}
JavaMail发送邮件
两个基本的jar:
、mail.jar 附件1
附件2、activation.jar
附件3、读取jsp或html的类
分为两种
一、发送html格式的文件
两个页面JavaMail.jsp welcome.jsp,一个GetSource.java文件 把welcome.jsp的源码加载成一个StringBuffer对象,然后作为内容发送过去 1、读取要发送的html代码,GetSource.java 2、配置发件人的服务器地址、邮箱名、密码,在JavaMail.jsp中
页面如下:
JavaMail发送邮件
两个基本的jar:
附件1、mail.jar
附件2、activation.jar
附件3、读取jsp或html的类
分为两种
一、发送html格式的文件
两个页面JavaMail.jsp welcome.jsp,一个GetSource.java文件 把welcome.jsp的源码加载成一个StringBuffer对象,然后作为内容发送过去
1、读取要发送的html代码,GetSource.java
2、配置发件人的服务器地址、邮箱名、密码,在JavaMail.jsp中
JavaMail.jsp页面如下:
Java代码
1. <%@ page import="javax.mail.*"%> 2. <%@ page import="javax.activation.*"%> 3. <%@ page import="javax.mail.internet.*"%> 4. <%@ page import="java.util.*,java.io.*"%> 5.
6. <%@ page contentType="text/html;charset=utf8"%> 7.
8. <%@page import="java.net.URL"%>
9. <%@page import="org.apache.commons.httpclient.methods.GetMethod
"%>
10.<%@page import="org.apache.commons.httpclient.HttpClient"%>
11.<%@page import="vdo.ws.GetSource"%>
12.
13.
14.
15.
16.
CH17 - JavaMail2.jsp 17.
18.
19.
20.
21. 利用JavaMail来发送电子邮件 - HTML格式
22.
23. <%
24.
25. InternetAddress[] address = null;
26. //request.setCharacterEncoding("utf8");
27. String mailserver = "smtp.moochi.com";//发出邮
箱的服务器
28. String From = "moochi@moochi.com";//发出的邮
箱
29. String to = "zhang-xinjie@163.com";//发到的邮
箱
30. String Subject = "嗨,亲爱的 ";//标题
31. String type = "text/html";//发送邮件格式为
html
32. String messageText = new GetSource().getSource
("");//写入你要发送的页面连接,将此页面读为
String
33. //messageText = URLEncoder.encode(messageText,
"utf8");
34.
35. boolean sessionDebug = false;
36.
37. try {
38.
39. // 设定所要用的Mail 服务器和所使用的传
输协议
40. java.util.Properties props = System.getP
roperties();
41. props.put("mail.host", mailserver); 42. props.put("mail.transport.protocol", "sm
tp");
43. props.put("mail.smtp.auth", "true");//指
定是否需要SMTP验证
44.
45. // 产生新的Session 服务
46. javax.mail.Session mailSession = javax.m
ail.Session.getDefaultInstance(props, null);
47. mailSession.setDebug(sessionDebug); 48. Message msg = new MimeMessage(mailSessio
n);
49.
50. // 设定发邮件的人
51. msg.setFrom(new InternetAddress(From));
52.
53. // 设定收信人的信箱
54. address = InternetAddress.parse(to, fals
e);
55. msg.setRecipients(Message.RecipientType.
TO, address);
56.
57. // 设定信中的主题
58. msg.setSubject(Subject); 59.
60. // 设定送信的时间
61. msg.setSentDate(new Date()); 62.
63. Multipart mp = new MimeMultipart();
64. MimeBodyPart mbp = new MimeBodyPart();
65.
66. // 设定邮件内容的类型
为 text/plain 或 text/html
67. mbp.setContent(messageText, type + ";cha
rset=utf8");
68. mp.addBodyPart(mbp); 69. msg.setContent(mp); 70.
71. Transport transport = mailSession.getTra
nsport("smtp");
72. ////请填入你的邮箱用户名和密码,千万别用
我的^_^
73. transport.connect(mailserver, "moochi",
"moochi123");//设发出邮箱的用户名、密码
74. transport.sendMessage(msg, msg.getAllRec
ipients());
75. transport.close();
//Transport.send(msg); 76.
77. out.println("邮件已顺利发送");
78.
79. } catch (MessagingException mex) { 80. mex.printStackTrace(); 81. out.println(mex);
82. }
83. try{
84. response.sendRedirect("../indexSelf.j
sp");//转向某页
85. }catch (Exception e){ 86. e.printStackTrace(); 87. }
88. %>
89.
90.
91.
GetSource.java
Java代码
1. package vdo.ws;
2.
3. import java.io.BufferedInputStream; 4. import java.io.IOException;
5. import java.io.InputStream;
6. import java.io.InputStreamReader; 7. import java.io.Reader;
8. import java.net.URLEncoder;
9.
10.import org.apache.commons.httpclient.HttpClient;
11.import org.apache.commons.httpclient.HttpException;
12.import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod; 13.
14.
15.public class GetSource {
16.
17. /**
18. * @param args
19. */
public HttpClient client = new HttpClient(); 20.
21.
22. public String getSource(String url) { 23.
24. GetMethod method = new GetMethod(url);
25.
26. try {
27. client.executeMethod(method); 28.
29. } catch (HttpException e) { 30.
31. //e.printStackTrace(); 32.
33. } catch (IOException e) { 34.
35. //e.printStackTrace(); 36.
37. }
38. InputStream in = null; 39. try {
40. in = method.getResponseBodyAsStream();
41. } catch (IOException e1) { 42.
43. //e1.printStackTrace(); 44. }
45. in = new BufferedInputStream(in); 46. Reader r = new InputStreamReader(in); 47. int c;
48. StringBuffer buffer = new StringBuffer();
49.
50. try {
51. while ((c = r.read()) != -1)
52. buffer.append((char)c); 53. } catch (IOException e) { 54.
55. //e.printStackTrace(); 56. }
57. try {
58. in.close();
59. } catch (IOException e) { 60.
61. //e.printStackTrace(); 62. }
63. method.releaseConnection(); 64.
65. return buffer.toString(); 66. }
67.
68.}
第十三章:干燥
通过本章的学习,应熟练掌握表示湿空气性质的参数,正确应用空气的H–I图确定空气的状态点及其性质参数;熟练应用物料衡算及热量衡算解决干燥过程中的计算问题;了解干燥过程的平衡关系和速率特征及干燥时间的计算;了解干燥器的类型及强化干燥操作的基本方法。
二、本章思考题
1、工业上常用的去湿方法有哪几种,
态参数,
11、当湿空气的总压变化时,湿空气H–I图上的各线将如何变化? 在t、H相同的条件下,提高压力对干燥操作是否有利? 为什么?
12、作为干燥介质的湿空气为什么要先经预热后再送入干燥器,
13、采用一定湿度的热空气干燥湿物料,被除去的水分是结合水还是非结合水,为什么,
14、干燥过程分哪几种阶段,它们有什么特征,
15、什么叫临界含水量和平衡含水量,
16、干燥时间包括几个部分,怎样计算,
17、干燥哪一类物料用部分废气循环,废气的作用是什么,
18、影响干燥操作的主要因素是什么,调节、控制时应注意哪些问题,
三、例题
2o例题13-1:已知湿空气的总压为101.3kN/m ,相对湿度为50%,干球温度为20 C。试用I-H图求解:
(a)水蒸汽分压p;
(b)湿度,;
(c)热焓,;
(d)露点t ; d
(e)湿球温度tw ;
o(f)如将含500kg/h干空气的湿空气预热至117C,求所需热量,。
解 :
2o由已知条件:,,101.3kN/m,Ψ,50%,t=20 C在I-H图上定出湿空气00
的状态点,点。
(a)水蒸汽分压p
过预热器气所获得的热量为
每小时含500kg干空气的湿空气通过预热所获得的热量为
例题13-2:在一连续干燥器中干燥盐类结晶,每小时处理湿物料为1000kg,经干燥后物料的含水量由40%减至5%(均为湿基),以热空气为干燥介质,初始
-1-1湿度H为0.009kg水•kg绝干气,离开干燥器时湿度H为0.039kg水•kg绝干12气,假定干燥过程中无物料损失,试求:
-1(1) 水分蒸发是q (kg水•h); m,W
-1(2) 空气消耗q(kg绝干气•h); m,L
-1原湿空气消耗量q(kg原空气•h); m,L’
-1(3)干燥产品量q(kg•h)。 m,G2解:
q=1000kg/h, w=40?, w=5% mG112H=0.009, H=0.039 12
q=q(1-w)=1000(1-0.4)=600kg/h mGCmG11
x=0.4/0.6=0.67, x=5/95=0.053 12?q=q(x-x)=600(0.67-0.053)=368.6kg/h mwmGC12
?q(H-H)=q mL21mw
q368.6mw q,,,12286.7mLH,H0.039,0.00921
q=q(1+H)=12286.7(1+0.009)=12397.3kg/h mL’mL1
?q=q(1-w) mGCmG22
q600mGC?q,,,631.6kg/h mG21,w1,0.052
---------------------------------------------------------------精品范文 -------------------------------------------------------------
精品范文
21 / 22
---------------------------------------------------------------精品范文 -------------------------------------------------------------
精品范文,,,
22 / 22