首页后端开发PHPPHP使用POP3读取邮箱接收邮件的实例解析

PHP使用POP3读取邮箱接收邮件的实例解析

时间2024-02-02 07:09:03发布访客分类PHP浏览636
导读:收集整理的这篇文章主要介绍了PHP使用POP3读取邮箱接收邮件的实例解析,觉得挺不错的,现在分享给大家,也给大家做个参考。直接上代码:<?php$array_values['host'] = "host";$array_values[...
收集整理的这篇文章主要介绍了PHP使用POP3读取邮箱接收邮件的实例解析,觉得挺不错的,现在分享给大家,也给大家做个参考。

直接上代码:

?php$array_values['host'] = "host";
    $array_values['port'] = 110;
    $array_values['user'] = '用户名';
    $array_values['password'] = '密码';
    $array_values['checkmail'] = 'xxx@xxx.xxx';
    ganji_get_test_mail($array_values);
function ganji_get_test_mail($array_values){
      $host = $array_values['host'];
      $port = $array_values['port'];
      $user = $array_values['user'];
      $password = $array_values['password'];
      $checkmail = $array_values['checkmail'];
      $msg = '';
      $return_msg = '';
      // ini_set('memory_limIT', '80M');
  if (! ($sock = @R_406_455@(gethostbyname($host), $port, $errno, $errstr))) {
        exit($errno . ': ' . $errstr);
  }
      set_socket_blocking($sock, true);
      $command = "USER " . $user . "\r\n";
      fwrite($sock, $command);
      $msg = fgets($sock);
      $command = "PASS " . $password . "\r\n";
      fwrite($sock, $command);
      $msg = fgets($sock);
      $command = "stat\r\n";
      fwrite($sock, $command);
      $return_msg = fgets($sock);
      $msg = fgets($sock);
      $command = "LIST\r\n";
      fwrite($sock, $command);
      $all_mails = array();
  while (true) {
        $msg = fgets($sock);
        if (! PReg_match('/^\+OK/', $msg) &
    &
 ! preg_match('/^\./', $msg)) {
          $msg = preg_replace('/\ .*\r\n/', '', $msg);
          array_push($all_mails, $msg);
    }
        if (preg_match('/^\./', $msg))      break;
  }
      // 获取邮件列表  $ganji_mails = array();
  foreach ($all_mails as $item) {
        fwrite($sock, "TOP $item 0\r\n");
    while (true) {
          $msg = fgets($sock);
          // echo $msg . "Br>
    Br>
    ";
      if (preg_match('/^\./', $msg)) {
            array_push($ganji_mails, $item);
            break;
      }
    }
        continue;
  }
      $mail_content = '';
      $array_ganji_mails = array();
  //逐行遍历  foreach ($ganji_mails as $item) {
        fwrite($sock, "RETR $item\r\n");
    while (true) {
          $msg = fgets($sock);
          $mail_content .= $msg;
      if (preg_match('/^\./', $msg)) {
            array_push($array_ganji_mails, iconv_mime_decode_headers($mail_content, 0, "UTF-8"));
            $mail_content = '';
            break;
      }
    }
  }
      // 直接获取第一封邮件全部信息 9999长度  fwrite($sock, "RETR 1\r\n");
      $mail_contents = fread($sock, 9999);
     // 直接获取全部  echo "br>
    ";
      var_dump($mail_contents);
      echo "br>
    ";
      $command = "QUIT\r\n";
      fwrite($sock, $command);
      $msg = fgets($sock);
      return $mail_contents;
}
    

常用的pop3命令介绍 :

命令参数状态描述
USERusername认可此命令与下面的pass命令若成功,将导致状态转换
PASSpassword 认可
APOPName,Digest认可Digest是MD5消息摘要
STATNone处理请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL[Msg#]处理返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST[Msg#]处理返回邮件数量和每个邮件的大小
RETR[Msg#]处理返回由参数标识的邮件的全部文本
DELE[Msg#]处理服务器将由参数标识的邮件标记为删除,由quit命令执行
RSETNone处理服务器将重置所有标记为删除的邮件,用于撤消DELE命令
TOP[Msg#] 处理服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOPNone处理服务器返回一个肯定的响应,不做任何操作。
QUITNone更新退出


相关学习推荐:PHP编程从入门到精通

以上就是PHP使用POP3读取邮箱接收邮件的实例解析的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PHP使用POP3读取邮箱接收邮件的实例解析
本文地址: https://pptw.com/jishu/596521.html
分析PHP中PHPMailer如何发邮件 详解PHP使用gearman进行异步的邮件或短信发送操作

游客 回复需填写必要信息