用PHP實現POP3郵件的解碼(三)

來源:互聯網
上載者:User
實現 MIME 解碼的類
(作者:陳俊清 2000年10月24日 15:11)
  一個實現 MIME 解碼的類
  該類實現解碼的方法是 decode($head=null,$body=null,$content_num=-1),為了處理上的方便,要求輸入的是兩個字元數組,在我們的上篇中,所用到的POP類所收取得到的就是兩個這樣的數組,一個是郵件標頭內容,一個是郵件的本文內容。限於篇幅,不對其做詳細的說明,其實現思想跟本文上篇中所介紹的POP類類似。請參考其中的注釋。
  該類中用到了大量的Regex的操作,對此不熟悉的讀者,請參考Regex的有關資料。
  class decode_mail
  {
  var $from_name;var $to_name;var $mail_time;var $from_mail;var $to_mail;
  var $reply_to;var $cc_to;var $subject;
  // 解碼後的郵件標頭部分的資訊:
  var $body;
  // 解碼後得到的本文資料,為一個數組。
  var $body_type; // 本文類型
  var $tem_num=0;
  var $get_content_num=0;
  var $body_temp=array();
  var $body_code_type;
  var $boundary;
  // 以上是一些方法中用到的一些全域性的臨時變數,由於 PHP不能做到良好的封裝,所以只能放在這裡定義
  var $err_str; // 錯誤資訊
  var $debug=0; // 調試標記
  var $month_num=array("Jan"=>1,"Feb"=>2,"Mar"=>3,"Apr"=>4,"May"=>5,"Jun"=>6,"Jul"=>7,
  "Aug"=>8,"Sep"=>9,"Oct"=>10,"Nov"=>11,"Dec"=>12); // 把英文月份轉換成數字表示的月份
  function decode($head=null,$body=null,$content_num=-1) // 調用的主方法,$head 與 $body 是兩個數組,$content_num 表示的是當本文有多個部分的時候,只取出指定部分的內容以提高效率,預設為 -1 ,表示解碼全部內容,如果解碼成功,該 方法返回 true
  {
   if (!$head and !$body)
   {
   $this->err_str="沒有指定郵件的頭與內容!!";
   return false;
   }
  if (gettype($head)=="array")
   {
   $have_decode=true;
   $this->decode_head($head);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.