Maison > développement back-end > tutoriel php > Introduction à la façon de recevoir des e-mails en IMAP en php

Introduction à la façon de recevoir des e-mails en IMAP en php

黄舟
Libérer: 2023-03-14 18:58:01
original
3535 Les gens l'ont consulté

Cet article présente principalement la méthode de réception d'e-mails PHP basée sur IMAP, et analyse les paramètres pertinents et les compétences d'utilisation de PHP basés sur la réception d'e-mails IMAP sous forme d'exemples. Il est également accompagné de descriptions des fonctions liées à IMAP. en cas de besoin, vous pouvez vous y référer

L'exemple de cet article décrit comment PHP collecte les e-mails basés sur IMAP. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Je dois gérer le problème des e-mails renvoyés dans la boîte mail d'entreprise de l'entreprise : L'idée initiale était de simuler la connexion et de capturer les e-mails. (Ce genre de chose ne fonctionne pas pour moi. Je l'ai fait plusieurs fois et je le connais), mais la boîte aux lettres est quand même un peu compliquée,

Plus tard, je me suis souvenu que smtp est utilisé pour envoyer des e-mails lors de l'envoi d'e-mails. N'oubliez pas que vous pouvez également recevoir des e-mails. Utilisez l'aide par courrier électronique de Tencent Enterprise

Étant donné que IMAP et POP peuvent recevoir des e-mails, j'ai également découvert que PHP a une fonction IMOP intégrée, j'ai donc a é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;
}
Copier après la connexion

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:  目前的状态信息。
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal