⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mail_fns.php

📁 《PHP和MySQL Web开发》(第三版) Source
💻 PHP
字号:
<?phpfunction retrieve_message($auth_user, $accountid, $messageid, $fullheaders){  $message = array();    if(!($auth_user && $messageid && $accountid))    return false;    $imap = open_mailbox($auth_user, $accountid);  if(!$imap)     return false;          $header = imap_header($imap, $messageid);    if(!$header)     return false;    $message['body'] = imap_body($imap, $messageid);  if(!$message['body'])     $message['body'] = "[This message has no body]\n\n\n\n\n\n";      if($fullheaders)    $message['fullheaders'] = imap_fetchheader($imap, $messageid);  else    $message['fullheaders'] = '';    $message['subject'] = $header->subject;  $message['fromaddress'] =   $header->fromaddress;  $message['toaddress'] =   $header->toaddress;  $message['ccaddress'] =   $header->ccaddress;  $message['date'] =   $header->date;      // note we can get more detailed information by using from and to   // rather than fromaddress and toaddress, but these are easier    imap_close($imap);   return $message;}function account_exists($auth_user, $accountid){  // does this user have an account with this id?    $query = "select count(*) from accounts where username = '$auth_user' and accountid = $accountid";  if($conn=db_connect())  {    $result = $conn->query($query);    $row = $result->fetch_array();    return $row[0];  }  return false;}function get_account_list($auth_user){  // get an array of the account ids that belong to this user  $query = "select accountid from accounts where username = '$auth_user'";  $list = array();    if($conn=db_connect())  {    $result = $conn->query($query);    $num = $result->num_rows;    for($i = 0; $i<$num; $i++)    {      $row = $result->fetch_array();      array_push($list, $row[0]);    }  }  return $list;}function number_of_accounts($auth_user){  // get the number of accounts that belong to this user    $query = "select count(*) from accounts where username = '$auth_user'";  if($conn=db_connect())  {    $result = $conn->query($query);      if($result)      {        $row = $result->fetch_array();        return $row[0];      }  }  return 0;}function delete_account($auth_user, $accountid){  //delete one of this user's accounts from the DB  $query = "delete from accounts where accountid='$accountid' and username = '$auth_user'";  if($conn=db_connect())  {    $result = $conn->query($query);  }  return $result;}function get_account_settings($auth_user, $accountid=0){  //get an array containing the settings for this account    $settings = array();  if($conn=db_connect())  {    if($accountid>0 && $accountid!='')    {      $query = "select * from accounts where accountid=$accountid and username = '$auth_user'";    }    else if (number_of_accounts($auth_user)==1)    {      $query = "select * from accounts where username = '$auth_user'";    }    else    {      return false;    }    $result = $conn->query($query);    if($result)    {      $settings = $result->fetch_assoc();      return $settings;    }    else      return false;  }  return false;}function get_accounts($auth_user){  $list = array();  if($conn=db_connect())  {    $query = "select * from accounts where username = '$auth_user'";    $result = $conn->query($query);    if($result)    {      while($settings = $result->fetch_assoc())        array_push($list, $settings);    }    else      return false;  }  return $list;}function store_account_settings($auth_user, $settings){  if(!filled_out($settings))  {    echo 'All fields must be filled in.  Try again.<br /><br />';    return false;  }  else  {    if($settings['account']>0)      $query = "update accounts  set server = '$settings[server]',                  port = $settings[port], type = '$settings[type]',                  remoteuser = '$settings[remoteuser]',                   remotepassword = '$settings[remotepassword]'                 where accountid = $settings[account]                   and username = '$auth_user'";    else      $query = "insert into accounts values ('$auth_user',                      '$settings[server]', $settings[port],                      '$settings[type]', '$settings[remoteuser]',                      '$settings[remotepassword]', NULL)";    if($conn=db_connect())    {      $result=$conn->query($query);      if ($result)        return true;      else        return false;    }    else    {      echo 'could not store changes.<br /><br /><br /><br /><br /><br />';      return false;    }  }}function delete_message($auth_user, $accountid, $message_id){  // delete a single message from the server    $imap = open_mailbox($auth_user, $accountid);  if($imap)  {    imap_delete($imap, $message_id);    imap_expunge($imap);    imap_close($imap);    return true;  }  return false;}function open_mailbox($auth_user, $accountid){   // select mailbox if there is only one  if(number_of_accounts($auth_user)==1)  {    $accounts = get_account_list($auth_user);     $_SESSION['selected_account'] = $accounts[0];     $accountid = $accounts[0];  }  // connect to the POP3 or IMAP server the user has selected  $settings = get_account_settings($auth_user, $accountid);  if(!sizeof($settings)) return 0;  $mailbox = '{'.$settings[server];  if($settings[type]=='POP3')    $mailbox .= '/pop3';    $mailbox .= ':'.$settings[port].'}INBOX';  // suppress warning, remember to check return value  @ $imap = imap_open($mailbox, $settings['remoteuser'], $settings['remotepassword']);  return  $imap;}function get_list($imap){  // get the list of messages in this mailbox  $headers = imap_headers($imap);  $messages = sizeof($headers);  for($i = 0; $i<$messages; $i++)  {    echo $headers[$i];  }  imap_close($imap); }function send_message($to, $cc, $subject, $message){  // send one email via PHP    if (!$conn=db_connect())  {     return false;  }  $query = 'select address from users where username=\''.$_SESSION['auth_user']."'";    $result = $conn->query($query);  if (!$result)  {    return false;    }  else if ($result->num_rows==0)  {    return false;   }  else  {    $row = $result->fetch_object();    $other = 'From: '.$row->address;    if (!empty($cc))       $other.="\r\nCc: $cc";    if (mail($to, $subject, $message, $other))    {      return true;    }    else    {      return false;    }  }}function add_quoting($string, $pattern = '> '){  // add a quoting pattern to mark text quoted in your reply  return $pattern.str_replace("\n", "\n$pattern", $string);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -