posts - 0,  comments - 17,  trackbacks - 0
          package com.royal.mail;

          import java.util.Properties;

          import javax.activation.DataHandler;
          import javax.activation.FileDataSource;
          import javax.mail.Address;
          import javax.mail.BodyPart;
          import javax.mail.Message;
          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;

          public class Mail

          {


              private MimeMessage mimeMsg; // MIME郵件對象
              private Session session; // 郵件會話對象
              private Properties props; // 系統屬性
              //private boolean needAuth = false; // smtp是否需要認證
              private String username = ""; // smtp認證用戶名和密碼
              private String password = "";
              private Multipart mp; // Multipart對象,郵件內容,標題,附件等內容均添加到其中后再生成//MimeMessage對象

              public Mail(String smtp)
              {
                  setSmtpHost(smtp);
                  createMimeMessage();
              }
              public void setSmtpHost(String hostName)
              {
                  System.out.println("設置系統屬性:mail.smtp.host = " + hostName);
                  if (props == null)
                      props = System.getProperties(); // 獲得系統屬性對象
                  props.put("mail.smtp.host", hostName); // 設置SMTP主機
              }
              public boolean createMimeMessage()
              {
                  try {
                      System.out.println("準備獲取郵件會話對象!");
                      session = Session.getDefaultInstance(props, null); // 獲得郵件會話對象
                  }
                  catch (Exception e)
                  {
                      System.err.println("獲取郵件會話對象時發生錯誤!" + e);
                      return false;
                  }
                  System.out.println("準備創建MIME郵件對象!");
                  try {
                      mimeMsg = new MimeMessage(session); // 創建MIME郵件對象
                      mp = new MimeMultipart(); // mp 一個multipart對象
                      return true;
                  }
                  catch (Exception e)
                  {
                      System.err.println("創建MIME郵件對象失敗!" + e);
                      return false;
                  }
              }


              public void setNeedAuth(boolean need) {
                  System.out.println("設置smtp身份認證:mail.smtp.auth = " + need);
                  if (props == null)
                      props = System.getProperties();
                  if (need) {
                      props.put("mail.smtp.auth", "true");
                  } else {
                      props.put("mail.smtp.auth", "false");

                  }

              }
              public void setNamePass(String name, String pass)
              {
                  System.out.println("程序得到用戶名與密碼");
                  username = name;
                  password = pass;
              }

              public boolean setSubject(String mailSubject) {
                  System.out.println("設置郵件主題!");
                  try {
                      mimeMsg.setSubject(mailSubject);
                      return true;
                  }
                  catch (Exception e) {
                      System.err.println("設置郵件主題發生錯誤!");
                      return false;
                  }
              }

              public boolean setBody(String mailBody)
              {
                  try
                  {
                      System.out.println("設置郵件體格式");
                      BodyPart bp = new MimeBodyPart();
                      bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"+mailBody,"text/html;charset=UTF-8");
                      mp.addBodyPart(bp);
                      return true;
                      
                      
                      
                  }
                  catch (Exception e)
                  {
                      System.err.println("設置郵件正文時發生錯誤!" + e);
                      return false;
                  }
              }

              public boolean addFileAffix(String filename) {
                  System.out.println("增加郵件附件:" + filename);
                  try {
                      BodyPart bp = new MimeBodyPart();
                      FileDataSource fileds = new FileDataSource(filename);
                      bp.setDataHandler(new DataHandler(fileds));
                      bp.setFileName(fileds.getName());
                      mp.addBodyPart(bp);
                      return true;
                  }
                  catch (Exception e) {
                      System.err.println("增加郵件附件:" + filename + "發生錯誤!" + e);
                      return false;
                  }
              }

              public boolean setFrom(String from) {
                  System.out.println("設置發信人!");
                  try {
                      mimeMsg.setFrom(new InternetAddress(from)); // 設置發信人
                      return true;
                  }
                  catch (Exception e)
                  {
                      return false;
                  }
              }
              public boolean setTo(String to)
              {
                  System.out.println("設置收信人");
                  if (to == null)
                      return false;
                  try
                  {
                      mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
                      return true;
                  }
                  catch (Exception e)
                  {
                      return false;
                  }
              }


              public boolean setCopyTo(String copyto)
              {
                  System.out.println("發送附件到");
                  if (copyto == null)
                      return false;
                  try {
                      mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));
                      return true;
                  }
                  catch (Exception e)
                  {
                      return false;
                  }
              }

              public boolean sendout()
              {
                  try
                  {
                      mimeMsg.setContent(mp);
                      mimeMsg.saveChanges();
                      System.out.println("正在發送郵件....");
                      Session mailSession = Session.getInstance(props, null);
                      Transport transport = mailSession.getTransport("smtp"); // ???
                      transport.connect((String) props.get("mail.smtp.host"), username,password);
                      transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
                      // transport.send(mimeMsg);
                      System.out.println("發送郵件成功!");
                      transport.close();
                      return true;
                  }
                  catch (Exception e)
                  {
                      System.err.println("郵件發送失敗!" + e);
                      return false;
                  }
              }

              /*public static void main(String[] args)
              {
                  String mailbody = "<html><head></head><body><hr><font color=""red"">hello. This is a testing.</red></body></html>";
                  Mail themail = new Mail("smtp.163.com");
                  themail.setNeedAuth(true);
                  if (themail.setSubject("dkjjf") == false)
                      return;
                  if (themail.setBody(mailbody) == false)
                      return;
                  if (themail.setTo("lyh@jobbaidu.com") == false)
                      return;
                  if (themail.setFrom("iversonpa@163.com") == false)
                      return;
                  //if (themail.addFileAffix("d://aaa.rar") == false)
                      //return; // 附件在本地機子上的絕對路徑
                  themail.setNamePass("iversonpa", "******"); // 用戶名與密碼
                  if (themail.sendout() == false)
                      return;
              }*/

          }

          posted on 2007-12-18 11:45 xyz 閱讀(210) 評論(0)  編輯  收藏 所屬分類: 他山之石

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿

          隨筆檔案(1)

          文章分類(44)

          文章檔案(46)

          收藏夾(1)

          Adobe

          AOP

          API

          appServer

          BI

          c

          • c-free
          • codeblocks
          • codelite
          • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
          • codelite官網
          • dev-c++
          • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
          • GCC
          • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

          Cache

          CMS

          DB

          eclipse

          FreeMarker

          hibernate

          html5

          ibatis

          java

          jquery

          js

          json

          Linux

          Log

          mail server

          mobile

          mysql

          oauth

          openID

          other

          PHP

          portal

          report

          Scheduler

          schema

          Security

          SOA

          spring

          struts

          UI原型設計

          w3c

          Wap

          webservice

          xml

          供應鏈管理

          博客鏈接

          好網站

          工作流

          開源網

          招聘

          插件下載

          操作系統

          構建可伸縮的系統

          構建工具

          測試

          • IETest
          • IE官網
          • OpenSTA
          • Siege
          • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

          游戲

          源碼托管

          經營

          資源

          金融/財務

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 兴化市| 衢州市| 定兴县| 阿图什市| 清徐县| 通江县| 荣成市| 天祝| 方城县| 台北县| 长乐市| 汨罗市| 库伦旗| 玉环县| 浦县| 永靖县| 清徐县| 曲阳县| 岢岚县| 句容市| 泗洪县| 宝应县| 肥乡县| 石狮市| 蒙城县| 山阴县| 天镇县| 鹤峰县| 休宁县| 丁青县| 黑山县| 扎兰屯市| 冀州市| 阆中市| 逊克县| 石渠县| 静宁县| 建阳市| 武汉市| 青海省| 陈巴尔虎旗|