本文代碼主要意圖是將log內容發給指定list里的聯系人。

          package com.yinger.util.MailRobot;

          import java.util.ArrayList;
          import java.util.Date;
          import java.util.List;
          import java.util.Properties;

          import javax.mail.Address;
          import javax.mail.Message;
          import javax.mail.PasswordAuthentication;
          import javax.mail.Session;
          import javax.mail.Transport;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeMessage;

          /**
           * SMTP Mail
           * 
           * 
          @author Ying-er
           * @mail melody.crazycoding@gmail.com
           * @time 2011/07/18 12:42:52
           * 
          @version 1.00
           
          */
          public final class SMTPMail {
              
          private static Properties props;

              
          private SMTPMail() {
              }

              
          /**
               * 靜態構造器
               
          */
              
          static {
                  SMTPMail.props 
          = new Properties();

                  
          // 存儲發送郵件服務器的信息
                  SMTPMail.props.put("mail.smtp.host", MailRobotConst.SMTPServerName);
                  SMTPMail.props.put(
          "mail.smtp.port", MailRobotConst.Port);
                  
          // 同時通過驗證
                  SMTPMail.props.put("mail.smtp.auth", MailRobotConst.Auth);
                  SMTPMail.props.put(
          "mail.smtp.socketFactory.port""465");
                  SMTPMail.props.put(
          "mail.smtp.socketFactory.class",
                          
          "javax.net.ssl.SSLSocketFactory");

              }

              
          public static void sent(String concept) {
                  List
          <String> mailAddrLs = new ArrayList<String>();
                  mailAddrLs 
          = (new GetMembers()).getXMLMembers();
                  
          for (int i = 0; i < mailAddrLs.size(); i++) {
                      String addr 
          = mailAddrLs.get(i);
                      System.out.println(
          "====>" + addr);
                      sendMail(addr, MailRobotConst.titleMode, concept);
                      
          try {
                          Thread.sleep(
          100);
                      } 
          catch (InterruptedException e) {
                          
          // TODO Auto-generated catch block
                          e.printStackTrace();
                      }
                  }
              }

              
          /**
               * 發送郵件
               * 
               * 
          @param emailAddr:收信人郵件地址
               * 
          @param mailTitle:郵件標題
               * 
          @param mailConcept:郵件內容
               
          */
              
          public static void sendMail(String emailAddr, String mailTitle,
                      String mailConcept) {
                  
          // 根據屬性新建一個郵件會話
                  Session s = Session.getDefaultInstance(props,
                          
          new javax.mail.Authenticator() {
                              
          protected PasswordAuthentication getPasswordAuthentication() {
                                  
          return new PasswordAuthentication(MailRobotConst.SMTPUserName, MailRobotConst.SMTPPassword);
                              }
                          });

                  
          // 設置調試標志,要查看經過郵件服務器郵件命令,可以用該方法
                  s.setDebug(true);

                  
          // 由郵件會話新建一個消息對象
                  Message message = new MimeMessage(s);
                  
          try {
                      
          // 設置發件人
                      Address from = new InternetAddress(MailRobotConst.SenderEmailAddr);
                      message.setFrom(from);

                      
          // 設置收件人
                      Address to = new InternetAddress(emailAddr);
                      message.setRecipient(Message.RecipientType.TO, to);

                      
          // 設置主題
                      message.setSubject(mailTitle);
                      
          // 設置信件內容
                      message.setText(mailConcept);
                      
          // 設置發信時間
                      message.setSentDate(new Date());
                      
          // 存儲郵件信息
                      message.saveChanges();

                      Transport.send(message);

                      System.out.println(
          "發送郵件,郵件地址:" + emailAddr + " 標題:" + mailTitle
                              
          + " 內容:" + mailConcept + "成功!");
                  } 
          catch (Exception e) {
                      System.out.println(e.getMessage());
                      System.out.println(
          "發送郵件,郵件地址:" + emailAddr + " 標題:" + mailTitle
                              
          + " 內容:" + mailConcept + "失敗! 原因是" + e.getMessage());
                  }
              }
          }


          GetMembers.java

          package com.yinger.util.MailRobot;

          import java.io.File;
          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;

          import org.dom4j.Document;
          import org.dom4j.DocumentHelper;
          import org.dom4j.Element;
          import org.dom4j.io.SAXReader;

          /**
           * members
           * 
           * 
          @author Ying-er
           * @mail melody.crazycoding@gmail.com
           * @time 2011/07/18 11:42:14
           * 
          @version 1.00
           
          */
          public class GetMembers {
              
          public List<String> getXMLMembers() {
                  List
          <String> membersLs = new ArrayList<String>();
                  Document document;
                  Element root;
                  String xmlFile 
          = "mailmembers.xml";
                  File file 
          = new File(xmlFile);

                  
          try {
                      
          if (file.exists()) {
                          SAXReader reader 
          = new SAXReader();
                          document 
          = reader.read(file);
                          root 
          = document.getRootElement();
                      } 
          else {
                          document 
          = DocumentHelper.createDocument();
                          root 
          = document.addElement("members");
                      }
                      List infoNodes 
          = root.elements("member");
                      
          for (Iterator it = infoNodes.iterator(); it.hasNext();) {
                          Element elm 
          = (Element) it.next();
                          String addr 
          = elm.elementText("addr");
                          membersLs.add(addr);
                      }

                  } 
          catch (Exception ex) {
                      ex.printStackTrace();
                  }
                  
          return membersLs;
              }
          }

          mailmembers.xml

          <?xml version="1.0" encoding="UTF-8"?>
          <members>
              
          <member>
                  
          <addr>linying0620@gmail.com</addr>
              
          </member>
              
          <member>
                  
          <addr>melody.crazycoding@gmail.com</addr>
              
          </member>
          </members>


          MailRobotConst.java

          注:注冊部分為163配置代碼

          package com.yinger.util.MailRobot;

          /**
           * main const
           * 
           * 
          @author Ying-er
           * @mail melody.crazycoding@gmail.com
           * @time 2011/07/18 11:38:47
           * 
          @version 1.00
           
          */
          public class MailRobotConst {
          //     // 郵件發送者地址
          //     public static final String SenderEmailAddr = "xxx@163.com";
          //    
          //     // 郵件發送者郵箱用戶
          //     public static final String SMTPUserName = "xxx@163.com";
          //    
          //     // 郵件發送者郵箱密碼
          //     public static final String SMTPPassword = "xxx";
          //    
          //     // 郵件發送者郵箱SMTP服務器
          //     public static final String SMTPServerName = "xxx";
          //        
          //     public static final String Port = "25";

              
          // 郵件發送者地址
              public static final String SenderEmailAddr = "yinger.android@gmail.com";

              
          // 郵件發送者郵箱用戶
              public static final String SMTPUserName = "yinger.android@gmail.com";

              
          // 郵件發送者郵箱密碼
              public static final String SMTPPassword = "xxx";

              
          // 郵件發送者郵箱SMTP服務器
              public static final String SMTPServerName = "smtp.gmail.com";

              
          public static final String Port = "465";// 587

              
          // 傳輸類型
              public static final String TransportType = "smtp";

              
          // host
              public static String Host = SMTPServerName;

              
          public static String Auth = "true";

              
          public static String titleMode = "Log";

          }


          調用方法:

          SMTPMail.sent("test");



          posted on 2011-07-21 09:07 Ying-er 閱讀(844) 評論(0)  編輯  收藏 所屬分類: SMTP
          主站蜘蛛池模板: 通山县| 崇文区| 额敏县| 永泰县| 温宿县| 瓦房店市| 新密市| 石泉县| 曲水县| 天全县| 遂溪县| 正阳县| 鄂托克前旗| 西乌珠穆沁旗| 白山市| 达日县| 杭锦旗| 筠连县| 天台县| 遵义县| 邹平县| 高雄县| 内黄县| 大方县| 涿州市| 安达市| 南宁市| 峨眉山市| 普兰店市| 龙游县| 汉寿县| 双桥区| 万盛区| 盐边县| 吉首市| 县级市| 荔浦县| 民县| 托克托县| 大荔县| 澄迈县|