js
              一、我们可以通过任何支持sun规范中的sun.net.smtp包的JSP引擎(如JSWDK)发送mail。 
              (警告:使用内置的internal Sun规范包,这将影响到你的jsp程序的可移植性。) 
以下scriptlet利用SmtpClient类在jsp文件中发送email。
二、 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); 
                } 
                }              
 
  
 
 
  
