服務(wù)器端回復(fù)郵件功能(javamail發(fā)送郵件的簡(jiǎn)單實(shí)例)

          為了以后使用方便,自己寫了段代碼,打成jar包,以方便以后使用。呵呵

          以下三段代碼是我的全部代碼,朋友們?nèi)绻胗茫苯訌?fù)制即可。

          第一個(gè)類:MailSenderInfo.java

          package com.util.mail;   
          /**   
          * 發(fā)送郵件需要使用的基本信息 
          *author by wangfun
          http://www.5a520.cn 小說520  
          */
              
          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;    
              }
              
          }
             


          第二個(gè)類:SimpleMailSender.java

          package com.util.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ā)送器   
          http://www.bt285.cn BT下載
          */
              
          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;   
                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屬性表示接收者的類型為TO    
                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;    
              }
              
          }
             

          第三個(gè)類:MyAuthenticator.java

           

          package com.util.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);   
              }
             
          }
             


          下面給出使用上面三個(gè)類的代碼:

          public static void main(String[] args){   
                   
          //這個(gè)類主要是設(shè)置郵件   
                MailSenderInfo mailInfo = new MailSenderInfo();    
                mailInfo.setMailServerHost(
          "smtp.163.com");    
                mailInfo.setMailServerPort(
          "25");    
                mailInfo.setValidate(
          true);    
                mailInfo.setUserName(
          "han2000lei@163.com");    
                mailInfo.setPassword(
          "**********");//您的郵箱密碼    
                mailInfo.setFromAddress("han2000lei@163.com");    
                mailInfo.setToAddress(
          "han2000lei@163.com");    
                mailInfo.setSubject(
          "設(shè)置郵箱標(biāo)題 如http://www.guihua.org 中國(guó)桂花網(wǎng)");    
                mailInfo.setContent(
          "設(shè)置郵箱內(nèi)容 如http://www.guihua.org 中國(guó)桂花網(wǎng) 是中國(guó)最大桂花網(wǎng)站==");    
                   
          //這個(gè)類主要來(lái)發(fā)送郵件   
                SimpleMailSender sms = new SimpleMailSender();   
                    sms.sendTextMail(mailInfo);
          //發(fā)送文體格式    
                    sms.sendHtmlMail(mailInfo);//發(fā)送html格式   
              }
            
          最后,給出朋友們幾個(gè)注意的地方:
          1、使用此代碼你可以完成你的javamail的郵件發(fā)送功能。三個(gè)類缺一不可。
          2、這三個(gè)類我打包是用的com.util.mail包,如果不喜歡,你可以自己改,但三個(gè)類文件必須在同一個(gè)包中
          3、不要使用你剛剛注冊(cè)過的郵箱在程序中發(fā)郵件,如果你的163郵箱是剛注冊(cè)不久,那你就不要使用“smtp.163.com”。因?yàn)槟惆l(fā)不出去。剛注冊(cè)的郵箱是不會(huì)給你這種權(quán)限的,也就是你不能通過驗(yàn)證。要使用你經(jīng)常用的郵箱,而且時(shí)間比較長(zhǎng)的。
          4、另一個(gè)問題就是mailInfo.setMailServerHost("smtp.163.com");mailInfo.setFromAddress("han2000lei@163.com");這兩句話。即如果你使用163smtp服務(wù)器,那么發(fā)送郵件地址就必須用163的郵箱,如果不的話,是不會(huì)發(fā)送成功的。

          posted on 2012-11-23 12:39 youngturk 閱讀(1811) 評(píng)論(1)  編輯  收藏 所屬分類: Java基礎(chǔ)

          評(píng)論

          # re: 服務(wù)器端回復(fù)郵件功能(javamail發(fā)送郵件的簡(jiǎn)單實(shí)例) 2015-03-16 13:00 wanglantao1988@sina.com

          有沒有什么辦法實(shí)現(xiàn),自動(dòng)回復(fù)。
          即在服務(wù)器端收到某種郵件時(shí)自動(dòng)發(fā)送一封郵件  回復(fù)  更多評(píng)論   

          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結(jié)構(gòu)
          4 口語(yǔ)英語(yǔ)

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          EJB學(xué)習(xí)

          Flex學(xué)習(xí)

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 葵青区| 洛宁县| 沧州市| 万荣县| 博客| 从江县| 罗江县| 威信县| 石阡县| SHOW| 黎川县| 额尔古纳市| 巫溪县| 晴隆县| 千阳县| 邮箱| 家居| 新乐市| 任丘市| 囊谦县| 阿克苏市| 株洲市| 潮安县| 沁阳市| 三明市| 建昌县| 宁河县| 镇康县| 石林| 连平县| 湛江市| 花垣县| 建宁县| 磴口县| 华蓥市| 嘉善县| 祥云县| 广丰县| 濮阳市| 新蔡县| 炉霍县|