隨筆-10  評(píng)論-11  文章-20  trackbacks-0
          這個(gè)只是一個(gè)Demo,可以用來(lái)封裝為像多人批量發(fā)送:

          廢話少說(shuō),直接上代碼:
          (代碼較多,直接復(fù)制之過(guò),不過(guò)請(qǐng)大家耐心查看,可以根據(jù)我的分類復(fù)制代碼到本地,在組合測(cè)試)
          /****************************************************************************/
          主文件代碼:

          package com.cmcc.mail;

          public class TestMail {

           public static void main(String[] args){  
                  //這個(gè)類主要是設(shè)置郵件  
                 MailSenderInfo mailInfo = new MailSenderInfo();      //此類封裝參見(jiàn)代碼2(下面) 
                 mailInfo.setMailServerHost("smtp.163.com");            //您要使用的郵箱服務(wù)器地址    
                 mailInfo.setMailServerPort("25");                               //SMTP使用的TCP端口固定是25
                 mailInfo.setValidate(true);   
                 mailInfo.setUserName("這里您自己填入");        //您的郵箱地址
                 mailInfo.setPassword("這里您自己填入");                         //您的郵箱密碼   
                 mailInfo.setFromAddress("hxlistiancai@163.com");    //您郵件的來(lái)源地址,必須與您的郵箱地址相同    
                 mailInfo.setToAddress("869407449@qq.com");       //目的郵箱地址
                
                 mailInfo.setSubject("計(jì)算中心北調(diào)課通知單");     //郵件主題
                   
                 String content = "";
                 String header = "尊敬的"+"aa 老師:\n"+
                   "您好!\n"+
                   "這是一封計(jì)算中心(北)智能排課平臺(tái)自動(dòng)給您發(fā)送的機(jī)房課程通知單,請(qǐng)您按照下表的相應(yīng)的時(shí)間通知學(xué)生到相應(yīng)的機(jī)房上課\n"+
                   "謝謝您的支持,您的滿意是我們計(jì)算中心最大的快樂(lè)!\n"+
                   "如果您對(duì)課表有任何疑問(wèn),請(qǐng)您撥打0315-2792027\n";
                  
                  
                   content += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"+
                   
                           "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" +
                     "<head>\n" +
                     "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n" +
          //           "<!--[if IE]><link href='/css/fkie.css' rel='stylesheet' type='text/css' media='all' /><![endif]-->\n" +
                     "<style type=\"text/css\">\n" +
                     "<!--\n"+  
                     "html{border:0;height:100%;border:0;}\n" +
                     "body{margin:0;padding:0;height:100%;font:12px/120% Arial, Helvetica, sans-serif; text-align:left;}\n" +
                     "#main{ padding:15px 25px 15px 10px;}\n" +
                     ".tables{ background:#b2bac5; width:100%; margin:1px 0;}\n"+     
                     ".tables caption{background:#e5e8ed; padding:1px 0 0 0; _border-bottom:solid 3px #fff; height:26px;}\n"+
                     ".tables th{text-align:center;background:#eef7e2; color:#016bb7; font-weight: normal; line-height:22px;}\n"+
                     ".tables tr{ background:#fff;}\n"+
                     ".tables tr td{line-height:22px;}\n"+
                     ".area-contrl{background:#e5e8ed; padding:1px 0 0 0; _border-bottom:solid 3px #fff; height:26px;}\n" +
                     "-->\n"+ 
                     "</style>\n" +
                     "</head>\n" +
                     "<body>\n" +
                     "<div id=\"main\">\n" +
                     "<div class=\"area-contrl\">\n" +
                     "<table class='tables' border='0' cellpadding='3' cellspacing='1'><tr><th width='35'>周次</th><th width='35'>星期</th><th width='35'>講次</th><th width='180'>機(jī)房</th><th width='50'>人數(shù)</th><th width='100'>任課教師</th><th width='200'>班級(jí)</th><th width='300'>課程名稱</th></tr>\n"
                                
                              +"<tr><td align='center'>aaa</td><td align='center'>bbb</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>eee</td><td align='center'>fff</td></tr>\n"
                   +"<tr><td align='center'>aaa</td><td align='center'>bbb</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>eee</td><td align='center'>fff</td></tr>\n"
                   +"<tr><td align='center'>aaa</td><td align='center'>bbb</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>eee</td><td align='center'>fff</td></tr>\n"
                   +"<tr><td align='center'>aaa</td><td align='center'>bbb</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>ccc</td><td align='center'>ddd</td><td align='center'>eee</td><td align='center'>fff</td></tr>";
                  
                   content += "</table></div></div></body></html>";
                   System.out.println(content);

                  
                   mailInfo.setContent(content);
                   //這個(gè)類主要來(lái)發(fā)送郵件  
                   SimpleMailSender sms = new SimpleMailSender();        //此類代碼參見(jiàn)代碼3(下面)
                  //         sms.sendTextMail(mailInfo);//發(fā)送文體格式   
                   sms.sendHtmlMail(mailInfo);//發(fā)送html格式  
             } 
          }


          /*******************************************************************************/

          代碼2:
          MailSenderInfo 類的封裝



          package com.cmcc.mail;
          /**  
          * 發(fā)送郵件需要使用的基本信息  
          */   
          import java.util.Properties;   
          public class MailSenderInfo {   
              // 發(fā)送郵件的服務(wù)器的IP和端口   
              private String mailServerHost;   
              private String mailServerPort = "25";   
              // 郵件發(fā)送者的地址   
              private String fromAddress;   
              // 郵件接收者的地址   
              private String toAddress;   
              // 登陸郵件發(fā)送服務(wù)器的用戶名和密碼   
              private String userName;   
              private String password;   
              // 是否需要身份驗(yàn)證   
              private boolean validate = false;   
              // 郵件主題   
              private String subject;   
              // 郵件的文本內(nèi)容   
              private String content;   
              // 郵件附件的文件名   
              private String[] attachFileNames;     
              /**  
                * 獲得郵件會(huì)話屬性  
                */   
              public Properties getProperties(){   
                Properties p = new Properties();   
                p.put("mail.smtp.host", this.mailServerHost);   
                p.put("mail.smtp.port", this.mailServerPort);   
                p.put("mail.smtp.auth", validate ? "true" : "false");   
                return p;   
              }   
              public String getMailServerHost() {   
                return mailServerHost;   
              }   
              public void setMailServerHost(String mailServerHost) {   
                this.mailServerHost = mailServerHost;   
              }  
              public String getMailServerPort() {   
                return mailServerPort;   
              }  
              public void setMailServerPort(String mailServerPort) {   
                this.mailServerPort = mailServerPort;   
              }  
              public boolean isValidate() {   
                return validate;   
              }  
              public void setValidate(boolean validate) {   
                this.validate = validate;   
              }  
              public String[] getAttachFileNames() {   
                return attachFileNames;   
              }  
              public void setAttachFileNames(String[] fileNames) {   
                this.attachFileNames = fileNames;   
              }  
              public String getFromAddress() {   
                return fromAddress;   
              }   
              public void setFromAddress(String fromAddress) {   
                this.fromAddress = fromAddress;   
              }  
              public String getPassword() {   
                return password;   
              }  
              public void setPassword(String password) {   
                this.password = password;   
              }  
              public String getToAddress() {   
                return toAddress;   
              }   
              public void setToAddress(String toAddress) {   
                this.toAddress = toAddress;   
              }   
              public String getUserName() {   
                return userName;   
              }  
              public void setUserName(String userName) {   
                this.userName = userName;   
              }  
              public String getSubject() {   
                return subject;   
              }  
              public void setSubject(String subject) {   
                this.subject = subject;   
              }  
              public String getContent() {   
                return content;   
              }  
              public void setContent(String textContent) {   
                this.content = textContent;   
              }   
          }  

           

          /****************************************************************************/
          代碼3:

          SimpleMailSender  類的封裝:

          package com.cmcc.mail;
          import java.util.Date;   
          import java.util.Properties;  
          import javax.mail.Address;   
          import javax.mail.BodyPart;   
          import javax.mail.Message;   
          import javax.mail.MessagingException;   
          import javax.mail.Multipart;   
          import javax.mail.Session;   
          import javax.mail.Transport;   
          import javax.mail.internet.InternetAddress;   
          import javax.mail.internet.MimeBodyPart;   
          import javax.mail.internet.MimeMessage;   
          import javax.mail.internet.MimeMultipart;   
           
          /**  
          * 簡(jiǎn)單郵件(不帶附件的郵件)發(fā)送器  
          */   
          public class SimpleMailSender  {   
          /**  
            * 以文本格式發(fā)送郵件  
            * @param mailInfo 待發(fā)送的郵件的信息  
            */   
              public boolean sendTextMail(MailSenderInfo mailInfo) {   
                // 判斷是否需要身份認(rèn)證   
                MyAuthenticator authenticator = null;   
                Properties pro = mailInfo.getProperties();  
                if (mailInfo.isValidate()) {   
                // 如果需要身份認(rèn)證,則創(chuàng)建一個(gè)密碼驗(yàn)證器   
                  authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   
                }  
                // 根據(jù)郵件會(huì)話屬性和密碼驗(yàn)證器構(gòu)造一個(gè)發(fā)送郵件的session   
                Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
                try {   
                // 根據(jù)session創(chuàng)建一個(gè)郵件消息   
                Message mailMessage = new MimeMessage(sendMailSession);   
                // 創(chuàng)建郵件發(fā)送者地址   
                Address from = new InternetAddress(mailInfo.getFromAddress());   
                // 設(shè)置郵件消息的發(fā)送者   
                mailMessage.setFrom(from);   
                // 創(chuàng)建郵件的接收者地址,并設(shè)置到郵件消息中   
                Address to = new InternetAddress(mailInfo.getToAddress());   
                mailMessage.setRecipient(Message.RecipientType.TO,to);   
                // 設(shè)置郵件消息的主題   
                mailMessage.setSubject(mailInfo.getSubject());   
                // 設(shè)置郵件消息發(fā)送的時(shí)間   
                mailMessage.setSentDate(new Date());   
                // 設(shè)置郵件消息的主要內(nèi)容   
                String mailContent = mailInfo.getContent();   
                mailMessage.setText(mailContent);   
                // 發(fā)送郵件   
                Transport.send(mailMessage);  
                return true;   
                } catch (MessagingException ex) {   
                    ex.printStackTrace();   
                }   
                return false;   
              }   
                
              /**  
                * 以HTML格式發(fā)送郵件  
                * @param mailInfo 待發(fā)送的郵件信息  
                */   
              public static boolean sendHtmlMail(MailSenderInfo mailInfo){   
                // 判斷是否需要身份認(rèn)證   
                MyAuthenticator authenticator = null;                                             //此類參見(jiàn)代碼4(下面)
                Properties pro = mailInfo.getProperties();  
                //如果需要身份認(rèn)證,則創(chuàng)建一個(gè)密碼驗(yàn)證器    
                if (mailInfo.isValidate()) {   
                  authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());  
                }   
                // 根據(jù)郵件會(huì)話屬性和密碼驗(yàn)證器構(gòu)造一個(gè)發(fā)送郵件的session   
                Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
                try {   
                // 根據(jù)session創(chuàng)建一個(gè)郵件消息   
                Message mailMessage = new MimeMessage(sendMailSession);   
                // 創(chuàng)建郵件發(fā)送者地址   
                Address from = new InternetAddress(mailInfo.getFromAddress());   
                // 設(shè)置郵件消息的發(fā)送者   
                mailMessage.setFrom(from);   
                // 創(chuàng)建郵件的接收者地址,并設(shè)置到郵件消息中   
                Address to = new InternetAddress(mailInfo.getToAddress());   
                // Message.RecipientType.TO屬性表示接收者的類型為T(mén)O   
                mailMessage.setRecipient(Message.RecipientType.TO,to);   
                // 設(shè)置郵件消息的主題   
                mailMessage.setSubject(mailInfo.getSubject());   
                // 設(shè)置郵件消息發(fā)送的時(shí)間   
                mailMessage.setSentDate(new Date());   
                // MiniMultipart類是一個(gè)容器類,包含MimeBodyPart類型的對(duì)象   
                Multipart mainPart = new MimeMultipart();   
                // 創(chuàng)建一個(gè)包含HTML內(nèi)容的MimeBodyPart   
                BodyPart html = new MimeBodyPart();   
                // 設(shè)置HTML內(nèi)容   
                html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");   
                mainPart.addBodyPart(html);   
                // 將MiniMultipart對(duì)象設(shè)置為郵件內(nèi)容   
                mailMessage.setContent(mainPart);   
                // 發(fā)送郵件   
                Transport.send(mailMessage);   
                return true;   
                } catch (MessagingException ex) {   
                    ex.printStackTrace();   
                }   
                return false;   
              }   
          }  

           

          /********************************************************************************/
          代碼4:
          MyAuthenticator 類的封裝:

          package com.cmcc.mail;


          import javax.mail.*;  

          public class MyAuthenticator extends Authenticator{  
              String userName=null;  
              String password=null;  
                 
              public MyAuthenticator(){  
              }  
              public MyAuthenticator(String username, String password) {   
                  this.userName = username;   
                  this.password = password;   
              }   
              protected PasswordAuthentication getPasswordAuthentication(){  
                  return new PasswordAuthentication(userName, password);  
              }  
          }  

           

          posted on 2011-02-26 11:09 Soap MacTavish 閱讀(408) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 金堂县| 丰台区| 佛坪县| 射阳县| 朔州市| 成武县| 微博| 孝义市| 营口市| 习水县| 曲周县| 天镇县| 新巴尔虎右旗| 泰来县| 灵宝市| 吴江市| 奉化市| 离岛区| 嘉峪关市| 大足县| 高青县| 潜江市| 阿城市| 通渭县| 华宁县| 新巴尔虎左旗| 巴林右旗| 洛隆县| 涡阳县| 平利县| 尉氏县| 临桂县| 民和| 鸡西市| 金溪县| 绥阳县| 阿克陶县| 赤峰市| 桦甸市| 闸北区| 杭州市|