Mail.object
上传用户:xiao730204
上传日期:2007-01-04
资源大小:141k
文件大小:3k
源码类别:

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. class Mail extends BaseObject {
  3.    var $server;
  4.    var $port;
  5.    var $user_name;
  6.    var $password;
  7.    var $pop3;
  8.    var $imap;
  9.    var $imap_obj;
  10.    var $pop3_obj;
  11.    var $folder;
  12.    Function Mail() {
  13.       $this->BaseObject( 'Mail' );
  14.       $this->server           = 'localhost';
  15.       $this->server_port      = 143;
  16.       $this->user_name        = '';
  17.       $this->password         = '';
  18.       $this->pop3             = 0;
  19.       $this->imap             = 0;
  20.       $this->imap_obj         = new MailImap();
  21.       $this->pop3_obj         = new MailPop3();
  22.       $this->folder           = '';
  23.    }
  24.    Function Connect() {
  25.       if ( $this->imap == true ) {
  26.          $this->imap_obj->CopySettings( $this );
  27.          return $this->imap_obj->Connect();
  28.       }
  29.       if ( $this->pop3 == true ) {
  30.          $this->pop3_obj->CopySettings( $this );
  31.          return $this->pop3_obj->Connect();
  32.       }
  33.    }
  34.    Function Disconnect() {
  35.       if ( $this->imap == true ) {
  36.          $this->imap_obj->CopySettings( $this );
  37.          return $this->Disconnect();
  38.       }
  39.       if ( $this->pop3 == true ) {
  40.          $this->pop3_obj->CopySettings( $this );
  41.          return $this->Disconnect();
  42.       }
  43.    }
  44.    Function Open() {
  45.       return $this->Connect();
  46.    }
  47.    Function Close() {
  48.       return $this->Disconnect();
  49.    }
  50.    Function GetFolder( $folder ) {
  51.       $this->folder = $folder;
  52.       $this->imap_obj->CopySettings( $this );
  53.       $this->pop3_obj->CopySettings( $this );
  54.       $temp_obj            = new MailFolder();
  55.       $temp_obj->CopySettings( $this );
  56.       return Array( true, $temp_obj );
  57.    }
  58.    Function ListFolders() {
  59.       $this->imap_obj->CopySettings( $this );
  60.       $this->pop3_obj->CopySettings( $this );
  61.       if ( $this->imap == 1 ) {
  62.          return $this->imap_obj->ListFolders();
  63.       } else {
  64.          /* POP3 Does not do folder support */
  65.          return Array();
  66.       }
  67.       return Array();
  68.    }
  69.    Function CreateFolder( $folder ) {
  70.       $this->imap_obj->CopySettings( $this );
  71.       $this->pop3_obj->CopySettings( $this );
  72.       if ( $this->imap == 1 ) {
  73.          return $this->imap_obj->CreateFolder( $folder );
  74.       } else {
  75.          /* POP3 Does not do folder support */
  76.          return 0;
  77.       }
  78.       return 0;
  79.    }
  80.    Function RemoveFolder( $folder ) {
  81.       $this->imap_obj->CopySettings( $this );
  82.       $this->pop3_obj->CopySettings( $this );
  83.       if ( $this->imap == 1 ) {
  84.          return $this->imap_obj->RemoveFolder( $folder );
  85.       } else {
  86.          /* POP3 Does not do folder support */
  87.          return 0;
  88.       }
  89.       return 0;
  90.    }
  91.    Function SubscribeToFolder( $folder ) {
  92.       $this->imap_obj->CopySettings( $this );
  93.       $this->pop3_obj->CopySettings( $this );
  94.       if ( $this->imap == 1 ) {
  95.          return $this->imap_obj->SubscribeToFolder( $folder );
  96.       } else {
  97.          /* POP3 Does not do folder support */
  98.          return 0;
  99.       }
  100.       return 0;
  101.    }
  102.    Function UnSubscribeFromFolder( $folder ) {
  103.    }
  104.    Function GetBareFolderNameList( $list ) {
  105.       $t_list = Array();
  106.       for( $i = 0; $i < count( $list ); $i++ ) {
  107.          $t_list[] = $this->GetBareFolderName( $list[ $i ] );
  108.       }
  109.       return $t_list;
  110.    }
  111.    Function GetBareFolderName( $folder_name ) {
  112.       if ( ereg( '^{(.*)}(.*)', $folder_name, $regs ) ) {
  113.          return $regs[ 2 ];
  114.       }
  115.       return $folder_name;
  116.    }
  117. }
  118. ?>