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

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

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岳阳县| 扎兰屯市| 青海省| 淳安县| 芜湖市| 巴楚县| 偃师市| 博乐市| 驻马店市| 麻城市| 金平| 神农架林区| 乌兰浩特市| 富锦市| 中超| 合阳县| 镇原县| 南召县| 张家港市| 凉山| 肥城市| 工布江达县| 安阳县| 沙湾县| 西宁市| 全南县| 景洪市| 扶绥县| 乌兰察布市| 黄平县| 盘山县| 镇江市| 平顶山市| 黄冈市| 西华县| 柘城县| 会昌县| 临沧市| 安多县| 富顺县| 西华县|