我的java天地

          JAVAMAIL發(fā)送郵件程序

          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;? // ?系統(tǒng)屬性

          ????
          private ? boolean ?needAuth? = ? false ;? // ?smtp是否需要認證

          ????
          private ?String?username? = ? "" ;? // ?smtp認證用戶名和密碼

          ????
          private ?String?password? = ? "" ;

          ????
          private ?Multipart?mp;? // ?Multipart對象,郵件內(nèi)容,標題,附件等內(nèi)容均添加到其中后再生成


          ????
          public ?Mail(String?smtp)? {
          ????????setSmtpHost(smtp);
          ????????createMimeMessage();
          ????}


          ????
          public ? void ?setSmtpHost(String?hostName)? {
          ????????System.out.println(
          " 設(shè)置系統(tǒng)屬性:mail.smtp.host?=? " ? +
          ?hostName);
          ????????
          if ?(props? == ? null
          )
          ????????????props?
          = ?System.getProperties();? // ?獲得系統(tǒng)屬性對象

          ????????props.put( " mail.smtp.host " ,?hostName);? // ?設(shè)置SMTP主機
          ????}


          ????
          public ? boolean ?createMimeMessage()? {
          ????????
          try ?
          {
          ????????????System.out.println(
          " 準備獲取郵件會話對象! "
          );
          ????????????session?
          = ?Session.getDefaultInstance(props,? null );? // ?獲得郵件會話對象

          ????????}
          ? catch ?(Exception?e)? {
          ????????????System.err.println(
          " 獲取郵件會話對象時發(fā)生錯誤! " ? +
          ?e);
          ????????????
          return ? false
          ;
          ????????}

          ????????System.out.println(
          " 準備創(chuàng)建MIME郵件對象! " );
          ????????
          try ?
          {
          ????????????mimeMsg?
          = ? new ?MimeMessage(session);? // ?創(chuàng)建MIME郵件對象

          ????????????mp? = ? new ?MimeMultipart();? // ?mp?一個multipart對象
          ????????????
          // ?Multipart?is?a?container?that?holds?multiple?body?parts.

          ???????????? return ? true ;
          ????????}
          ? catch ?(Exception?e)? {
          ????????????System.err.println(
          " 創(chuàng)建MIME郵件對象失敗! " ? +
          ?e);
          ????????????
          return ? false
          ;
          ????????}

          ????}


          ????
          public ? void ?setNeedAuth( boolean ?need)? {
          ????????System.out.println(
          " 設(shè)置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(
          " 設(shè)置郵件主題! "
          );
          ????????
          try ?
          {
          ????????????mimeMsg.setSubject(mailSubject);
          ????????????
          return ? true
          ;
          ????????}
          ? catch ?(Exception?e)? {
          ????????????System.err.println(
          " 設(shè)置郵件主題發(fā)生錯誤! "
          );
          ????????????
          return ? false
          ;
          ????????}

          ????}


          ????
          public ? boolean ?setBody(String?mailBody)? {
          ????????
          try ?
          {
          ????????????System.out.println(
          " 設(shè)置郵件體格式 "
          );
          ????????????BodyPart?bp?
          = ? new
          ?MimeBodyPart();
          ????????????
          // ?轉(zhuǎn)換成中文格式

          ????????????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(
          " 設(shè)置郵件正文時發(fā)生錯誤! " ? +
          ?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? + ? " 發(fā)生錯誤! " ? +
          ?e);
          ????????????
          return ? false
          ;
          ????????}

          ????}


          ????
          public ? boolean ?setFrom(String?from)? {
          ????????System.out.println(
          " 設(shè)置發(fā)信人! "
          );
          ????????
          try ?
          {
          ????????????mimeMsg.setFrom(
          new ?InternetAddress(from));? // ?設(shè)置發(fā)信人

          ???????????? return ? true ;
          ????????}
          ? catch ?(Exception?e)? {
          ????????????
          return ? false
          ;
          ????????}

          ????}


          ????
          public ? boolean ?setTo(String?to)? {
          ????????System.out.println(
          " 設(shè)置收信人 "
          );
          ????????
          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(
          " 發(fā)送附件到 "
          );
          ????????
          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(
          " 正在發(fā)送郵件. "
          );
          ????????????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( " 發(fā)送郵件成功! " );
          ????????????transport.close();
          ????????????
          return ? true
          ;
          ????????}
          ? catch ?(Exception?e)? {
          ????????????System.err.println(
          " 郵件發(fā)送失??! " ? +
          ?e);
          ????????????
          return ? false
          ;
          ????????}

          ????}


          ????
          public ? static ? void ?main(String[]?args)? {
          ????????String?mailbody?
          = ? " 發(fā)送郵件測試?<font?color=red>歡迎你,java</font> "
          ;
          ????????Mail?themail?
          = ? new ?Mail( " smtp.163.com "
          );
          ????????themail.setNeedAuth(
          true
          );
          ????????
          // ?標題

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

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

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

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

          ???????? 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 閱讀(393) 評論(0)  編輯  收藏 所屬分類: java

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

          導航

          統(tǒng)計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 周至县| 沾化县| 北辰区| 岳阳县| 女性| 延吉市| 阿坝| 海安县| 叶城县| 曲阳县| 建阳市| 枣阳市| 阳东县| 东阿县| 额尔古纳市| 古交市| 红桥区| 天水市| 攀枝花市| 巴彦县| 昭苏县| 廉江市| 榆树市| 柞水县| 沙洋县| 夏河县| 虹口区| 高邑县| 黄石市| 连云港市| 梁河县| 旅游| 淮北市| 乐山市| 弥勒县| SHOW| 永修县| 宁津县| 临朐县| 淮安市| 龙海市|