Maison  >  Article  >  développement back-end  >  Explication détaillée d'exemples de réception d'e-mails en utilisant IMAP avec PHP

Explication détaillée d'exemples de réception d'e-mails en utilisant IMAP avec PHP

小云云
小云云original
2018-05-31 09:37:342591parcourir

Cet article présente principalement la méthode de réception d'e-mails basée sur PHP basée sur IMAP. Il analyse les paramètres associés et les compétences d'utilisation de PHP basées sur la réception d'e-mails IMAP sur la base d'exemples. Il est également accompagné de descriptions des fonctions liées à IMAP. en cas de besoin, je peux m'y référer. J'espère que cela pourra aider. Tout le monde

doit faire face au problème des emails renvoyés dans la boîte mail d'entreprise : l'idée initiale est de simuler la connexion et de capturer les emails (je. J'ai fait ce genre de chose plusieurs fois, et je le connais. ), mais l'e-mail est encore un peu compliqué

Plus tard, je me suis souvenu que smtp est utilisé pour envoyer des e-mails lors de l'envoi d'e-mails. peut également recevoir des e-mails. Utilisez l'aide par courrier électronique de Tencent Enterprise http://service.exmail/cgi-bin/help?subtype=1&&id=28&&no=1000584

J'ai vu ça. IMAP et POP peuvent recevoir des e-mails, puis j'ai découvert que PHP avait une fonction IMOP intégrée, j'ai donc écrit un exemple :

//以腾讯企业邮箱做了测试
$mailServer="imap.exmail.qq.com"; //IMAP主机
$mailLink="{{$mailServer}:143}INBOX" ; //imagp连接地址:不同主机地址不同
$mailUser = '***'; //邮箱用户名
$mailPass = '***'; //邮箱密码
$mbox = imap_open($mailLink,$mailUser,$mailPass); //开启信箱imap_open
$totalrows = imap_num_msg($mbox); //取得信件数
for ($i=1;$i<$totalrows;$i++){
  $headers = imap_fetchheader($mbox, $i); //获取信件标头
  $headArr = matchMailHead($headers); //匹配信件标头
  $mailBody = imap_fetchbody($mbox, $i, 1); //获取信件正文
}
/**
 *
 * 匹配提取信件头部信息
 * @param String $str
 */
function matchMailHead($str){
  $headList = array();
  $headArr = array(
    &#39;from&#39;,
    &#39;to&#39;,
    &#39;date&#39;,
    &#39;subject&#39;
  );
  foreach ($headArr as $key){
    if(preg_match(&#39;/&#39;.$key.&#39;:(.*?)[\n\r]/is&#39;, $str,$m)){
      $match = trim($m[1]);
      $headList[$key] = $key==&#39;date&#39;?date(&#39;Y-m-d H:i:s&#39;,strtotime($match)):$match;
    }
  }
  return $headList;
}

Ci-joint la bibliothèque de fonctions IMAP :

imap_append:  附加字符串到指定的邮箱中。
imap_base64:  解 BASE64 编码。
imap_body:  读信的内文。
imap_check:  返回邮箱信息。
imap_close:  关闭 IMAP 链接。
imap_createmailbox:  建立新的信箱。
imap_delete:  标记欲删除邮件。
imap_deletemailbox:  删除既有信箱。
imap_expunge:  删除已标记的邮件。
imap_fetchbody:  从信件内文取出指定部分。
imap_fetchstructure:  获取某信件的结构信息。
imap_header:  获取某信件的标头信息。
imap_headers:  获取全部信件的标头信息。
imap_listmailbox:  获取邮箱列示。
imap_listsubscribed:  获取订阅邮箱列示。
imap_mail_copy:  复制指定信件到它处邮箱。
imap_mail_move:  移动指定信件到它处邮箱。
imap_num_msg:  取得信件数。
imap_num_recent:  取得新进信件数。
imap_open:  打开 IMAP 链接。
imap_ping:  检查 IMAP 是否连接。
imap_renamemailbox:  更改邮箱名字。
imap_reopen:  重开 IMAP 链接。
imap_subscribe:  订阅邮箱。
imap_undelete:  取消删除邮件标记。
imap_unsubscribe:  取消订阅邮箱。
imap_qprint:  将 qp 编码转成八位。
imap_8bit:  将八位转成 qp 编码。
imap_binary:  将八位转成 base64 编码。
imap_scanmailbox:  寻找信件有无特定字符串。
imap_mailboxmsginfo:  取得目前邮箱的信息。
imap_rfc822_write_address:  电子邮件位址标准化。
imap_rfc822_parse_adrlist:  解析电子邮件位址。
imap_setflag_full:  配置信件标志。
imap_clearflag_full:  清除信件标志。
imap_sort:  将信件标头排序。
imap_fetchheader:  取得原始标头。
imap_uid:  取得信件 UID。
imap_getmailboxes:  取得全部信件详细信息。
imap_getsubscribed:  列出所有订阅邮箱。
imap_msgno:  列出 UID 的连续信件。
imap_search:  搜寻指定标准的信件。
imap_last_error:  最后的错误信息。
imap_errors:  所有的错误信息。
imap_alerts:  所有的警告信息。
imap_status:  目前的状态信息。

Recommandations associées :

PHP utilise IMAP pour recevoir des e-mails

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn