用javamail中发邮件
注意:
String mailserver="Your Mailserver";
即是你的邮件监听服务器,可用Sendmail或Qmail实现,也可用网上免费的,如smtp.163.net的.一个带附件的例子<%@ 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();
  }
  %>

解决方案 »

  1.   

    邮件监听服务器是提供邮件发送服务的后台监听服务器,javamail是前台API、常用的webmail程序、Outlook和Foxmail等都是前台使用的组件或软件,这些前台软件通过后台服务器和其他邮件服务器进行交流,如果没有后台监听服务器,前台软件是无法正常工作的,交流可使用SMTP、POP3和IMAP等标准协议。
      

  2.   

    一般给客户开发要求客户应该有邮件监听服务器,如果实在没有条件,可以使用网上免费的或在“新网”(chinadns.com)等服务商上注册一个,不过服务就没有长远的保障了。有条件的可以使用自己单独的服务器,在Linux或Unix上安装Sendmail或Qmail即可实现,当然也可以使用Microsoft Exchage Server,不过……(^v^)。
      

  3.   

    http://www.csdn.net/expert/topic/679/679555.xml?temp=3.121585E-02