我的java天地

          JAVAMAIL發送郵件程序

          package ?mail;

          import ?java.util. *
          ;
          import ?javax.mail. *
          ;
          import ?javax.mail.internet. *
          ;
          import
          ?java.util.Date;
          import ?javax.activation. *
          ;
          import ?java.io. *
          ;

          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對象,郵件內容,標題,附件等內容均添加到其中后再生成


          ????
          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對象
          ????????????
          // ?Multipart?is?a?container?that?holds?multiple?body?parts.

          ???????????? 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=gb2312> "

          ????????????????????????????
          + ?mailBody,? " text/html;charset=GB2312 " );
          ????????????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));
          ????????????
          // System.out.println("文件名:??"+fileds.getName());

          ????????????bp.setFileName( new ?String(fileds.getName().getBytes(), " ISO8859-1 " ));
          ????????????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?
          = ? " 發送郵件測試?<font?color=red>歡迎你,java</font> "
          ;
          ????????Mail?themail?
          = ? new ?Mail( " smtp.163.com "
          );
          ????????themail.setNeedAuth(
          true
          );
          ????????
          // ?標題

          ???????? if ?(themail.setSubject( " 發送郵件測試 " )? == ? false )
          ????????????
          return
          ;
          ????????
          // ?郵件內容?支持html?如?<font?color=red>歡迎你,java</font>

          ???????? if ?(themail.setBody(mailbody)? == ? false )
          ????????????
          return
          ;
          ????????
          // ?收件人郵箱

          ???????? if ?(themail.setTo( " xxxxx@139130.net " )? == ? false )
          ????????????
          return
          ;
          ????????
          // ?發件人郵箱

          ???????? if ?(themail.setFrom( " xxxxx@163.com " )? == ? false )
          ????????????
          return
          ;
          ????????
          // ?設置附件

          ???????? if ?(themail.addFileAffix( " C:/Documents?and?Settings/Administrator/桌面/通道預警.txt " )? == ? false )
          ????????????
          return ;? // ?附件在本地機子上的絕對路徑

          ????????themail.setNamePass( " xxxxx@163.com " ,? " password " );? // ?用戶名與密碼,即您選擇一個自己的電郵
          ???????? if ?(themail.sendout()? == ? false )
          ????????????
          return
          ;
          ????}

          }

          posted on 2011-04-25 16:12 tobyxiong 閱讀(400) 評論(0)  編輯  收藏 所屬分類: java

          <2011年4月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁蒗| 依兰县| 开阳县| 拜泉县| 曲周县| 剑川县| 武宁县| 长沙市| 砚山县| 申扎县| 泾源县| 津南区| 陈巴尔虎旗| 临安市| 石门县| 乐昌市| 集贤县| 安吉县| 西盟| 枣庄市| 台安县| 竹北市| 容城县| 奇台县| 青神县| 临沂市| 光泽县| 克拉玛依市| 万山特区| 株洲市| 丘北县| 旅游| 渑池县| 昂仁县| 湟源县| 思南县| 大英县| 临桂县| 中江县| 德州市| 江源县|