当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

在Java中发送邮件的一个相当完善的脚本


  package com.asql.base;
  import java.util.*;
  import javax.mail.*;
  import javax.mail.internet.*;
  import javax.activation.*;
  
  
  public class MailSender {
  
   public final static boolean sendMail(LoadLog sendlog,String smtphost,String mailfrom,
   boolean mailauth,String mailuser,String mailpassword,
   String mailto,String mailcc,String mailsubject,
   String mailmessage,String mailattach)
   {
   MimeMessage mimeMsg;
   MimeMultipart mp;    
   Session session;  
   String sep[]={";"};
   Properties props=new java.util.Properties();  
   int i;
   props.put("mail.smtp.host",smtphost);
   try{
     session = Session.getDefaultInstance(props,null);
     mimeMsg = new MimeMessage(session);
     mp = new MimeMultipart();
     if(mailauth)
      props.put("mail.smtp.auth","true");
      else
       props.put("mail.smtp.auth","false");
     if (sendlog!=null)
   sendlog.println("Mail Host Address: "+smtphost);
   }
   catch(Exception e)
   {
     if (sendlog!=null)
      sendlog.println(e.getMessage());
     return false;
    }
   try
   {
     mimeMsg.setFrom(new InternetAddress(mailfrom));
     if (sendlog!=null)
      sendlog.println("Mail From Address: "+mailfrom);
   }
   catch(Exception e)
    {
     if (sendlog!=null)
      sendlog.println(e.getMessage());
     return false;
   }
   try{
     java.util.Vector temp = WordsConvert.getWords(mailto,sep);
     if (temp.size()==0)
     {
       if (sendlog!=null)
    sendlog.println("Mail Target Address Requried.");
   return false;
     }
     Address toaddress[] = new Address[temp.size()];
     for(i=0;i   toaddress[i]=InternetAddress.parse(temp.elementAt(i).toString())[0];
     mimeMsg.setRecipients(Message.RecipientType.TO,toaddress);
        if (sendlog!=null)
     sendlog.println("Mail To  Address: "+mailto);
   }
   catch(Exception e)
   {
        if (sendlog!=null)
     sendlog.println("Error Mail To,"+e);
     return false;
      }
      if(mailcc != null && mailcc.length()>0)
   {
   try{
     java.util.Vector temp = WordsConvert.getWords(mailcc,sep);
     if (temp.size()>0)
     {
      Address ccaddress[] = new Address[temp.size()];
      for(i=0;i    ccaddress[i]=InternetAddress.parse(temp.elementAt(i).toString())[0];
      mimeMsg.setRecipients(Message.RecipientType.CC,ccaddress);
         if (sendlog!=null)
      sendlog.println("Mail Cc  Address: "+mailcc);
     }
   }
   catch(Exception e)
   {
         if (sendlog!=null)
      sendlog.println(e.getMessage());
     return false;
       }
   }
   try
   {
    mimeMsg.setSubject(mailsubject,"GB2312");
   BodyPart bp = new MimeBodyPart();
   bp.setContent(""+
    mailmessage,"text/html;charset=GB2312");
   mp.addBodyPart(bp);
   }
   catch(Exception e)
   {
        if (sendlog!=null)
   sendlog.println(e.getMessage());
     return false;
    }
      if(mailattach != null && mailattach.length()>0)
   {
   try{
      java.util.Vector temp = WordsConvert.getWords(mailattach,sep);
      for(i=0;i      {
      MimeBodyPart bp = new MimeBodyPart();
      FileDataSource fileds = new FileDataSource(temp.elementAt(i).toString());
      DataHandler dh = new DataHandler(fileds);
      bp.setDisposition(Part.ATTACHMENT);
      bp.setFileName(fileds.getName());
      bp.setDataHandler(dh);
      mp.addBodyPart(bp);
      }
   }
   catch(Exception e)
   {
    if (sendlog!=null)
      sendlog.println(e.getMessage());
      return false;
   }
   }
   try{
     mimeMsg.setContent(mp);
     mimeMsg.saveChanges();
     Session mailSession = Session.getInstance(props,null);
     Transport transport = mailSession.getTransport("smtp");
     transport.connect((String)props.get("mail.smtp.host"),mailuser,mailpassword);
     transport.sendMessage(mimeMsg,mimeMsg.getAllRecipients());
     if (sendlog!=null)
      sendlog.println("Mail Successfully Sended!");
     transport.close();
   }
   catch(Exception e)
   {
     if (sendlog!=null)
      sendlog.println(e.getMessage());;
     return false ;
   }
   return true;
    }
  }
  
相关内容
赞助商链接