enlight
java学习总结

2006年7月7日

以前整理的一段代码,来源于网上,大家可以使用它连接到普通的邮件服务器或gmail邮件服务器发送邮件通知等.
现在还只是发送文本邮件,有兴趣的可以再看一下如何发送超文本邮件,带附件等.
//Author:Adrian 20060707

package asdf.asdf.mail;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
//使用gmail的邮件服务器
public  class EmailNoticeEx{
   public static String sendSSLGmail(String fromName,String fromEmail,String smtpServer,String smtpUser,String smtpPassword,String recipient_name,String recipients[],String subject,String message,String encoding){
  try{
   boolean debug = false;
   java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
   // Set the host smtp address
   //  设置系统属性
   Properties props = new Properties();//获得系统属性对象
   props.put("mail.transport.protocol", "smtp");    
   props.put("mail.host", smtpServer);//设置SMTP主机

   MyAuthenticator auth = new MyAuthenticator(smtpUser, smtpPassword);
   //获得邮件会话对象
   Session mailSession = Session.getDefaultInstance(props, auth);
   mailSession.setDebug(debug);
   javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象
   
   //创建MIME邮件对象
   mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
   // create a message
   //Message msg = new MimeMessage(session);

   // set the from and to address
   InternetAddress addressFrom = new InternetAddress(fromEmail,fromName);
   mimeMsg.setFrom(addressFrom);

   InternetAddress[] addressTo = new InternetAddress[recipients.length];
   for (int i = 0; i < recipients.length; i++) {
       addressTo[i] = new InternetAddress(recipients[i]);
   }
   mimeMsg.setRecipients(Message.RecipientType.TO, addressTo);
   // Setting the Subject and Content Type
   mimeMsg.setSubject(subject,encoding);
   mimeMsg.setContent(message, "text/plain");
   mimeMsg.setText(message,encoding);
   Transport.send(mimeMsg);
  }catch(Exception e){
      e.printStackTrace();
      return e.getMessage();
  }
  return null;
 }
//使用普通的邮件服务器  
   public static String sendMail(String fromName,String fromEmail,String smtpServer,String smtpUser,String smtpPassword,String recipient_name,String recipients[],String subject,String message,String encoding){
          try{
           boolean debug = false;
           // Set the host smtp address
           //  设置系统属性
           Properties props = new Properties();//获得系统属性对象
           props.put("mail.transport.protocol", "smtp");
           props.put("mail.smtp.starttls.enable","true");
           props.put("mail.smtp.host", smtpServer);//设置SMTP主机
           props.put("mail.smtp.auth", "true");
           
           MyAuthenticator auth = new MyAuthenticator(smtpUser, smtpPassword);
           //获得邮件会话对象
           Session mailSession = Session.getDefaultInstance(props, auth);
           mailSession.setDebug(debug);
           javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象
           
           //创建MIME邮件对象
           mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
           // create a message
           //Message msg = new MimeMessage(session);

           // set the from and to address
           InternetAddress addressFrom = new InternetAddress(fromEmail,fromName);
           mimeMsg.setFrom(addressFrom);

           InternetAddress[] addressTo = new InternetAddress[recipients.length];
           for (int i = 0; i < recipients.length; i++) {
               addressTo[i] = new InternetAddress(recipients[i]);
           }
           mimeMsg.setRecipients(Message.RecipientType.TO, addressTo);
           // Setting the Subject and Content Type
           mimeMsg.setSubject(subject,encoding);
           mimeMsg.setContent(message, "text/plain");
           mimeMsg.setText(message,encoding);
           Transport.send(mimeMsg);
          }catch(Exception e){
              e.printStackTrace();
              return e.getMessage();
          }
          return null;
         }
           

 
}// end class

// smtp需要验证时候的验证类
class MyAuthenticator
   extends javax.mail.Authenticator {
 private String strUser;
 private String strPwd;
 public MyAuthenticator(String user, String password) {
   this.strUser = user;
   this.strPwd = password;
 }

 protected PasswordAuthentication getPasswordAuthentication() {
   return new PasswordAuthentication(strUser, strPwd);
 }
}
 楼主:navIme2
posted @ 2006-07-07 17:41 java孬巭 阅读(252) | 评论 (0)编辑 收藏