服務器端回復郵件功能(javamail發送郵件的簡單實例)

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

          以下三段代碼是我的全部代碼,朋友們如果想用,直接復制即可。

          第一個類:MailSenderInfo.java

          package com.util.mail;   
          /**   
          * 發送郵件需要使用的基本信息 
          *author by wangfun
          http://www.5a520.cn 小說520  
          */
              
          import java.util.Properties;    
          public class MailSenderInfo {    
              
          // 發送郵件的服務器的IP和端口    
              private String mailServerHost;    
              
          private String mailServerPort = "25";    
              
          // 郵件發送者的地址    
              private String fromAddress;    
              
          // 郵件接收者的地址    
              private String toAddress;    
              
          // 登陸郵件發送服務器的用戶名和密碼    
              private String userName;    
              
          private String password;    
              
          // 是否需要身份驗證    
              private boolean validate = false;    
              
          // 郵件主題    
              private String subject;    
              
          // 郵件的文本內容    
              private String content;    
              
          // 郵件附件的文件名    
              private String[] attachFileNames;      
              
          /**   
                * 獲得郵件會話屬性   
                
          */
              
              
          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;    
              }
              
          }
             


          第二個類: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;    
            
          /**   
          * 簡單郵件(不帶附件的郵件)發送器   
          http://www.bt285.cn BT下載
          */
              
          public class SimpleMailSender  {    
          /**   
            * 以文本格式發送郵件   
            * 
          @param mailInfo 待發送的郵件的信息   
            
          */
              
              
          public boolean sendTextMail(MailSenderInfo mailInfo) {    
                
          // 判斷是否需要身份認證    
                MyAuthenticator authenticator = null;    
                Properties pro 
          = mailInfo.getProperties();   
                
          if (mailInfo.isValidate()) {    
                
          // 如果需要身份認證,則創建一個密碼驗證器    
                  authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());    
                }
             
                
          // 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session    
                Session sendMailSession = Session.getDefaultInstance(pro,authenticator);    
                
          try {    
                
          // 根據session創建一個郵件消息    
                Message mailMessage = new MimeMessage(sendMailSession);    
                
          // 創建郵件發送者地址    
                Address from = new InternetAddress(mailInfo.getFromAddress());    
                
          // 設置郵件消息的發送者    
                mailMessage.setFrom(from);    
                
          // 創建郵件的接收者地址,并設置到郵件消息中    
                Address to = new InternetAddress(mailInfo.getToAddress());    
                mailMessage.setRecipient(Message.RecipientType.TO,to);    
                
          // 設置郵件消息的主題    
                mailMessage.setSubject(mailInfo.getSubject());    
                
          // 設置郵件消息發送的時間    
                mailMessage.setSentDate(new Date());    
                
          // 設置郵件消息的主要內容    
                String mailContent = mailInfo.getContent();    
                mailMessage.setText(mailContent);    
                
          // 發送郵件    
                Transport.send(mailMessage);   
                
          return true;    
                }
           catch (MessagingException ex) {    
                    ex.printStackTrace();    
                }
              
                
          return false;    
              }
              
                 
              
          /**   
                * 以HTML格式發送郵件   
                * 
          @param mailInfo 待發送的郵件信息   
                
          */
              
              
          public static boolean sendHtmlMail(MailSenderInfo mailInfo){    
                
          // 判斷是否需要身份認證    
                MyAuthenticator authenticator = null;   
                Properties pro 
          = mailInfo.getProperties();   
                
          //如果需要身份認證,則創建一個密碼驗證器     
                if (mailInfo.isValidate()) {    
                  authenticator 
          = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   
                }
              
                
          // 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session    
                Session sendMailSession = Session.getDefaultInstance(pro,authenticator);    
                
          try {    
                
          // 根據session創建一個郵件消息    
                Message mailMessage = new MimeMessage(sendMailSession);    
                
          // 創建郵件發送者地址    
                Address from = new InternetAddress(mailInfo.getFromAddress());    
                
          // 設置郵件消息的發送者    
                mailMessage.setFrom(from);    
                
          // 創建郵件的接收者地址,并設置到郵件消息中    
                Address to = new InternetAddress(mailInfo.getToAddress());    
                
          // Message.RecipientType.TO屬性表示接收者的類型為TO    
                mailMessage.setRecipient(Message.RecipientType.TO,to);    
                
          // 設置郵件消息的主題    
                mailMessage.setSubject(mailInfo.getSubject());    
                
          // 設置郵件消息發送的時間    
                mailMessage.setSentDate(new Date());    
                
          // MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象    
                Multipart mainPart = new MimeMultipart();    
                
          // 創建一個包含HTML內容的MimeBodyPart    
                BodyPart html = new MimeBodyPart();    
                
          // 設置HTML內容    
                html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");    
                mainPart.addBodyPart(html);    
                
          // 將MiniMultipart對象設置為郵件內容    
                mailMessage.setContent(mainPart);    
                
          // 發送郵件    
                Transport.send(mailMessage);    
                
          return true;    
                }
           catch (MessagingException ex) {    
                    ex.printStackTrace();    
                }
              
                
          return false;    
              }
              
          }
             

          第三個類: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);   
              }
             
          }
             


          下面給出使用上面三個類的代碼:

          public static void main(String[] args){   
                   
          //這個類主要是設置郵件   
                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(
          "設置郵箱標題 如http://www.guihua.org 中國桂花網");    
                mailInfo.setContent(
          "設置郵箱內容 如http://www.guihua.org 中國桂花網 是中國最大桂花網站==");    
                   
          //這個類主要來發送郵件   
                SimpleMailSender sms = new SimpleMailSender();   
                    sms.sendTextMail(mailInfo);
          //發送文體格式    
                    sms.sendHtmlMail(mailInfo);//發送html格式   
              }
            
          最后,給出朋友們幾個注意的地方:
          1、使用此代碼你可以完成你的javamail的郵件發送功能。三個類缺一不可。
          2、這三個類我打包是用的com.util.mail包,如果不喜歡,你可以自己改,但三個類文件必須在同一個包中
          3、不要使用你剛剛注冊過的郵箱在程序中發郵件,如果你的163郵箱是剛注冊不久,那你就不要使用“smtp.163.com”。因為你發不出去。剛注冊的郵箱是不會給你這種權限的,也就是你不能通過驗證。要使用你經常用的郵箱,而且時間比較長的。
          4、另一個問題就是mailInfo.setMailServerHost("smtp.163.com");mailInfo.setFromAddress("han2000lei@163.com");這兩句話。即如果你使用163smtp服務器,那么發送郵件地址就必須用163的郵箱,如果不的話,是不會發送成功的。

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

          評論

          # re: 服務器端回復郵件功能(javamail發送郵件的簡單實例) 2015-03-16 13:00 wanglantao1988@sina.com

          有沒有什么辦法實現,自動回復。
          即在服務器端收到某種郵件時自動發送一封郵件  回復  更多評論   

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

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 和平县| 鹤岗市| 寿宁县| 桃园市| 湟中县| 徐汇区| 阿克| 永胜县| 临安市| 安阳县| 岳阳市| 襄垣县| 静乐县| 嫩江县| 哈尔滨市| 朝阳区| 库伦旗| 普安县| 泸溪县| 龙岩市| 青阳县| 婺源县| 伊宁市| 洱源县| 德化县| 巴里| 娄烦县| 广东省| 呼和浩特市| 凌海市| 麻江县| 突泉县| 南阳市| 昭苏县| 岫岩| 乡宁县| 徐州市| 宣恩县| 屯昌县| 民勤县| 错那县|