一个带附件的例子<%@ page language="java" contentType="text/html;charset=Gb2312"%>
<%@ page import="java.util.*,java.io.*" %>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%>
<%@ page import="com.oreilly.servlet.MultipartRequest" %><%!
  InternetAddress[] address=null;
  %>
<%
  MultipartRequest multi=new MultipartRequest(request,".",5*1024*1024);
  
  String mailserver="Your Mailserver";
  String From=multi.getParameter("From");
  String To=multi.getParameter("To");
  String Subject=multi.getParameter("Subject");
  String messageText=multi.getParameter("Message");
  String FileName;
  
  if(multi.getFilesystemName("FileName")==null)
  {
     FileName=null;
  }
  else
  {
     FileName=multi.getFilesystemName("FileName");
  }
  
  boolean sessionDebug=false;
  try
  {
    java.util.Properties props=System.getProperties();
    props.put("mail.host",mailserver);
    props.put("mail.transport.protocol","smtp");
    props.put("mail.transport.user","yourUsername");
    props.put("mail.transport.password","yourPwd");
    
    
    javax.mail.Session mailSession=javax.mail.Session.getDefaultInstance(props,null);
    mailSession.setDebug(sessionDebug);
    
    Message msg= new MimeMessage(mailSession);
    
    msg.setFrom(new InternetAddress(From));
    
    address=InternetAddress.parse(To,false);
    msg.setRecipients(Message.RecipientType.TO,address);
    
    msg.setSubject(Subject);
    
    msg.setSentDate(new Date());
    
    if(FileName!=null)
    {
      File file=new File(FileName);
      
      MimeBodyPart mbp1=new MimeBodyPart();
      
      mbp1.setContent(messageText.toString(),"text/html");
      
      MimeBodyPart mbp2=new MimeBodyPart();
      FileDataSource fds=new FileDataSource(FileName);
      mbp2.setDataHandler(new DataHandler(fds));
      mbp2.setFileName(fds.getName());
      
      Multipart mp=new MimeMultipart();
      mp.addBodyPart(mbp1);
      mp.addBodyPart(mbp2);
      msg.setContent(mp);
    }
    else
    {
       msg.setContent(messageText.toString(),"text/html");
    }
    
    Transport.send(msg);
    out.println("邮件已经顺利发送");
 }
 
  catch(MessagingException mex)
  {
     mex.printStackTrace();
  }
  %>