文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
JSP随机数/Javascript随机数
利用XMLHTTP无刷新获取数据
JSP白皮书
在jsp中发送email
为什么jsp不能取代servlet?
jsp的5个不足之处
JSP技巧:发送动态图像
用JSP操作Cookie
简易成绩查询系统
用JSP创建WAP应用
在Windows/NT上建立JSP环境
用jsp连接数据库大全
如何成为一个优秀的JSP程序员
ASP与JSP的比较
处理表单数据
JSP及语法概要
处理Cookie
jsp文件操作之写入篇
一个可以防止刷新的JSP计数器
jsp计数器代码
JSP简明教程
在Java中使用Oracle blob
JSP入门初级教程之预定义变量的使用
在JSP中使用JavaMail(2)
在JSP中使用JavaMail
JSP/Servlet的重定向技术综述
JSP 语法详解(2)
JSP 语法详解(1)
数据库的连接与关闭


技术教程 -> JSP教程 ->  
在jsp中发送email
来源:转载   人气:1524   录入时间:2007-11-8
    
   一、我们可以通过任何支持sun规范中的sun.net.smtp包的JSP引擎(如JSWDK)发送mail。
   (警告:使用内置的internal Sun规范包,这将影响到你的jsp程序的可移植性。)
   
   以下scriptlet利用SmtpClient类在jsp文件中发送email。
   
   <%@ page import="sun.net.smtp.SmtpClient, java.io.*" %>
   <%
   String from="gseshadri@hotmail.com";
   String to="govind@jguru.com, govi@bigfoot.com";
   try{
   SmtpClient client = new SmtpClient("mail.xxxxx.xxx");
   client.from(from);
   client.to(to);
   PrintStream message = client.startMessage();
   message.println("To: " + to);
   message.println("Subject: Sending email from JSP!");
   message.println("This was sent from a JSP page!");
   message.println();
   message.println("Cool beans! :-)");
   message.println();
   message.println("Govind Seshadri");
   message.println("jGuru.com");
   message.println();
   client.closeServer();
   }
   catch (IOException e){
   System.out.println("ERROR SENDING EMAIL:"+e);
   }
   %>
   
   
   二、 JavaMail是官方的 Java mail API,可参考 http://java.sun.com/products/javamail/。虽然该API比 sun.net.smtp.SmtpClient更丰富或者说更复杂,但它是可移植的。这里重新创建了一个 MailSender类,它包含了 JavaMail API。如下所示:
   
   
   // ms_ prefix is for MailSender class variables
   // str prefix is for String
   // astr prefix is for array of Strings
   // strbuf prefix is for StringBuffers, etc.
   public MailSender(
   String strFrom, // sender
   String[] astrTo, // recipient(s)
   String[] astrBCC, // bcc recipient(s), optional
   String strSubject, // subject
   boolean debugging)
   {
   ms_strFrom = strFrom; // who the message is from
   ms_astrTo = astrTo; // who (plural) the message is to
   ms_debugging = debugging; // who (plural) the message is to
   
   // set the host
   Properties props = new Properties();
   props.put("mail.smtp.host", ms_strSMTPHost);
   
   // create some properties and get the default Session
   Session session = Session.getDefaultInstance(props, null);
   session.setDebug(ms_debugging);
   
   try {
   // create a message
   ms_msg = new MimeMessage(session);
   
   // set the from
   InternetAddress from = new InternetAddress(strFrom);
   ms_msg.setFrom(from);
   
   // set the to
   InternetAddress[] address = new InternetAddress[astrTo.length];
   for (int i = 0; i astrTo.length; ++i)
   {
   address[i] = new InternetAddress(astrTo[i]);
   }
   ms_msg.setRecipients(Message.RecipientType.TO, address);
   
   // set the bcc recipients
   if (astrBCC != null)
   {
   address = new InternetAddress[astrBCC.length];
   for (int i = 0; i astrBCC.length; ++i)
   {
   eh.dbg("astrBCC[" + i + "] is: '" + astrBCC[i] + "'");
   address[i] = new InternetAddress(astrBCC[i]);
   }
   ms_msg.setRecipients(Message.RecipientType.BCC, address);
   }
   
   // set the subject
   ms_msg.setSubject(strSubject);
   
   // set up the string buffer which will hold the message
   ms_strbufMsg = new StringBuffer();
   
   } catch (MessagingException mex) {
   mex.printStackTrace(System.err);
   } catch (Exception ex) {
   ex.printStackTrace(System.err);
   }
   }
   
   public void ms_add(String strText)
   {
   ms_strbufMsg.append(strText);
   }
   
   public void ms_send()
   {
   try {
   // set the content as plain text
   ms_msg.setContent(new String(ms_strbufMsg), "text/plain");
   
   // and away
   Transport.send(ms_msg);
   } catch (Exception ex) {
   System.out.println("Caught exception in MailSender.ms_send: " + ex);
   }
   }
   
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987