亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP receiveMail實現收郵件功能php實例

2020-03-22 18:02:53
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了PHP receiveMail實現收郵件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

用PHP來發郵件,相信大家都不陌生,但讀取收件箱的話,接觸就少了,這次總結下自己的經驗,希望可以幫助大家.

注意:

1.PHP讀取收件箱主要是利用imap擴展,所以在使用以下方法前,必須開啟imap擴展模塊的支持.

2.此方法支持中文,不會亂碼,需要保持所有文件的編碼的一致性

1.文件結構

2.郵件類 ./mailreceived/receiveMail.html' target='_blank'>class.php

./mailreceived/receiveMail.class.php 文件內容如下:

 ?php // Main ReciveMail Class File - Version 1.0 (03-06-2015)  * File: recivemail.class.php  * Description: Reciving mail With Attechment  * Version: 1.1  * Created: 03-06-2015  * Author: Sara Zhou class receiveMail  var $server=  var $username=  var $password=  var $marubox=  var $email=  function receiveMail($username,$password,$EmailAddress,$mailserver= localhost ,$servertype= pop ,$port= 110 ,$ssl = false) //Constructure  if($servertype== imap )  if($port== ) $port= 143  $strConnect= { .$mailserver. : .$port. }INBOX  else  $strConnect= { .$mailserver. : .$port. /pop3 .($ssl ? /ssl : ). }INBOX  $this- server = $strConnect;  $this- username = $username;  $this- password = $password;  $this- email = $EmailAddress;  function connect() //Connect To the Mail Box  $this- marubox=@imap_open($this- server,$this- username,$this- password);  if(!$this- marubox)  return false; // echo Error: Connecting to mail server // exit;  return true; 
$sender_replyto=$mail_header- reply_to[0]; if(strtolower($sender- mailbox)!= mailer-daemon strtolower($sender- mailbox)!= postmaster ) $subject=$this- decode_mime($mail_header- subject); $ccList=array(); foreach ($mail_header- cc as $k = $v) $ccList[]=$v- mailbox. @ .$v- host; $toList=array(); foreach ($mail_header- to as $k = $v) $toList[]=$v- mailbox. @ .$v- host; $ccList=implode( , , $ccList); $toList=implode( , , $toList); $mail_details=array( fromBy = strtolower($sender- mailbox). @ .$sender- host, fromName = $this- decode_mime($sender- personal), ccList = $ccList,//strtolower($sender_replyto- mailbox). @ .$sender_replyto- host, toNameOth = $this- decode_mime($sender_replyto- personal), subject = $subject, mailDate = date( Y-m-d H:i:s ,$mail_header- udate), udate = $mail_header- udate, toList = $toList//strtolower($mail_header- to[0]- mailbox). @ .$mail_header- to[0]- host // to = strtolower($mail_header- toaddress) return $mail_details; function get_mime_type( $structure) //Get Mime type Internal Private Use $primary_mime_type = array( TEXT , MULTIPART , MESSAGE , APPLICATION , AUDIO , IMAGE , VIDEO , OTHER if($structure- subtype $structure- subtype!= PNG ) { return $primary_mime_type[(int) $structure- type] . / . $structure- subtype; return TEXT/PLAIN function get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false) //Get Part Of Message Internal Private Use if(!$structure) { $structure = imap_fetchstructure($stream, $msg_number); if($structure) { if($mime_type == $this- get_mime_type($structure)) if(!$part_number) $part_number = 1 $text = imap_fetchbody($stream, $msg_number, $part_number); if($structure- encoding == 3) return imap_base64($text); // if ($structure- parameters[0]- value!= utf-8 ) // { // return imap_base64($text); // } // else // { // return imap_base64($text); // } else if($structure- encoding == 4) return iconv( gb2312 , utf8 ,imap_qprint($text)); else return iconv( gb2312 , utf8 ,$text); if($structure- type == 1) /* multipart */ while(list($index, $sub_structure) = each($structure- parts)) if($part_number) $prefix = $part_number . . $data = $this- get_part($stream, $msg_number, $mime_type, $sub_structure, $prefix . ($index + 1)); if($data) return $data; return false; function getTotalMails() //Get Total Number off Unread Email In Mailbox if(!$this- marubox) return false; // return imap_headers($this- marubox); return imap_num_recent($this- marubox); function GetAttach($mid,$path) // Get Atteced File from Mail if(!$this- marubox) return false; $struckture = imap_fetchstructure($this- marubox,$mid); $files=array(); if($struckture- parts) foreach($struckture- parts as $key = $value) $enc=$struckture- parts[$key]- encoding; //取郵件附件 if($struckture- parts[$key]- ifdparameters) //命名附件,轉碼 $name=$this- decode_mime($struckture- parts[$key]- dparameters[0]- value); $extend =explode( . , $name); $file[ extension ] = $extend[count($extend)-1]; $file[ pathname ] = $this- setPathName($key, $file[ extension $file[ title ] = !empty($name) ? htmlspecialchars($name) : str_replace( . . $file[ extension ], , $name); $file[ size ] = $struckture- parts[$key]- dparameters[1]- value; // $file[ tmpname ] = $struckture- parts[$key]- dparameters[0]- value; if(@$struckture- parts[$key]- disposition== ATTACHMENT ) $file[ type ] = 1; else $file[ type ] = 0; $files[] = $file; $message = imap_fetchbody($this- marubox,$mid,$key+1); if ($enc == 0) $message = imap_8bit($message); if ($enc == 1) $message = imap_8bit ($message); if ($enc == 2) $message = imap_binary ($message); if ($enc == 3)//圖片 $message = imap_base64 ($message); if ($enc == 4) $message = quoted_printable_decode($message); if ($enc == 5) $message = $message; $fp=fopen($path.$file[ pathname ], w fwrite($fp,$message); fclose($fp); // 處理內容中包含圖片的部分 if($struckture- parts[$key]- parts) foreach($struckture- parts[$key]- parts as $keyb = $valueb) $enc=$struckture- parts[$key]- parts[$keyb]- encoding; if($struckture- parts[$key]- parts[$keyb]- ifdparameters) //命名圖片 $name=$this- decode_mime($struckture- parts[$key]- parts[$keyb]- dparameters[0]- value); $extend =explode( . , $name); $file[ extension ] = $extend[count($extend)-1]; $file[ pathname ] = $this- setPathName($key, $file[ extension $file[ title ] = !empty($name) ? htmlspecialchars($name) : str_replace( . . $file[ extension ], , $name); $file[ size ] = $struckture- parts[$key]- parts[$keyb]- dparameters[1]- value; // $file[ tmpname ] = $struckture- parts[$key]- dparameters[0]- value; $file[ type ] = 0; $files[] = $file; $partnro = ($key+1). . .($keyb+1); $message = imap_fetchbody($this- marubox,$mid,$partnro); if ($enc == 0) $message = imap_8bit($message); if ($enc == 1) $message = imap_8bit ($message); if ($enc == 2) $message = imap_binary ($message); if ($enc == 3) $message = imap_base64 ($message); if ($enc == 4) $message = quoted_printable_decode($message); if ($enc == 5) $message = $message; $fp=fopen($path.$file[ pathname ], w fwrite($fp,$message); fclose($fp); //move mail to taskMailBox $this- move_mails($mid, $this- marubox); return $files; function getBody($mid, $path,$imageList) // Get Message Body if(!$this- marubox) return false; $body = $this- get_part($this- marubox, $mid, TEXT/HTML if ($body == ) $body = $this- get_part($this- marubox, $mid, TEXT/PLAIN if ($body == ) { return //處理圖片 $body=$this- embed_images($body,$path,$imageList); return $body; function embed_images( $body, $path,$imageList) // get all img tags preg_match_all( / img.*? / , $body, $matches); if (!isset($matches[0])) return; foreach ($matches[0] as $img) // replace image web path with local path preg_match( /src= (.*?) / , $img, $m); if (!isset($m[1])) continue; $arr = parse_url($m[1]); if (!isset($arr[ scheme ]) || !isset($arr[ path ]))continue; // if (!isset($arr[ host ]) || !isset($arr[ path ]))continue; if ($arr[ scheme ]!= http ) $filename=explode( @ , $arr[ path $body = str_replace($img, img alt= src= .$path.$imageList[$filename[0]]. >

3.控制層./mailreceived/mailControl.php

./mailreceived/mailControl.php 內容如下:

 ?  * File: mailControl.php  * Description: Received Mail Example  * Created: 03-06-2015  * Author: Sara Zhou @header( Content-type: text/html;charset=UTF-8 error_reporting(0); ignore_user_abort(); // run script in background set_time_limit(0); // run script forever date_default_timezone_set( Asia/Shanghai include( receivemail.class.php class mailControl  //定義系統常量  //用戶名  public $mailAccount = 123456@qq.com  public $mailPasswd = 12345  public $mailAddress = 123456@qq.com  public $mailServer = pop.qq.com  public $serverType = pop3  public $port = 110  public $now = 0;  public $savePath =  public $webPath = ../upload/  public function __construct()  $this- now = date( Y-m-d H:i:s ,time());  $this- setSavePath();  /**  * mail Received()讀取收件箱郵件  * @param  * @access public  * @return result  public function mailReceived()  // Creating a object of reciveMail Class  $obj= new receivemail($this- mailAccount,$this- mailPasswd,$this- mailAddress,$this- mailServer,$this- serverType,$this- port,false);  //Connect to the Mail Box  $res=$obj- connect(); //If connection fails give error message and exit  if (!$res)  return array( msg = Error: Connecting to mail server  // Get Total Number of Unread Email in mail box  $tot=$obj- getTotalMails(); //Total Mails in Inbox Return integer value  if($tot 1) { //如果信件數為0,顯示信息  return array( msg = No Message for .$this- mailAccount);  else  $res=array( msg = Total Mails:: $tot br  for($i=$tot;$i $i--)  $head=$obj- getHeaders($i); // Get Header Info Return Array Of Headers **Array Keys are (subject,to,toOth,toNameOth,from,fromName)  //處理郵件附件  $files=$obj- GetAttach($i,$this- savePath); // 獲取郵件附件,返回的郵件附件信息數組  $imageList=array();  foreach($files as $k = $file)  //type=1為附件,0為郵件內容圖片  if($file[ type ] == 0)  $imageList[$file[ title ]]=$file[ pathname  $body = $obj- getBody($i,$this- webPath,$imageList);  $res[ mail ][]=array( head = $head, body = $body, attachList = $files); // $obj- deleteMails($i); // Delete Mail from Mail box // $obj- move_mails($i, taskMail  $obj- close_mailbox(); //Close Mail Box  return $res;  /**  * creatBox  * @access public  * @return void  public function creatBox($boxName)  // Creating a object of reciveMail Class  $obj= new receivemail($this- mailAccount,$this- mailPasswd,$this- mailAddress,$this- mailServer,$this- serverType,$this- port,false);  $obj- creat_mailbox($boxName);  /**  * Set save path.  * @access public  * @return void  public function setSavePath()  $savePath = ../upload/ . date( Ym/ , $this- now);  if(!file_exists($savePath))  @mkdir($savePath, 0777, true);  touch($savePath . index.html  $this- savePath = dirname($savePath) . /  $obj=new mailControl();  //收取郵件  $res=$obj- mailReceived();  echo pre print_r($res);  //創建郵箱 // $obj- creatBox( readyBox ? 

4.訪問地址:http://localhost/test.cn/mailreceived/mailControl.php 即可

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持php 。

您可能感興趣的文章:

PHP分享圖片的生成方法php技巧

laravel 5.4 + vue + vux + element的環境搭配過程介紹php實例

php-fpm添加service服務的例子php實例

以上就是PHP receiveMail實現收郵件功能php實例的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚州国产精品久久久| 俺去啦;欧美日韩| 91精品91久久久久久| 九九久久精品一区| 中文字幕国产亚洲2019| 性色av一区二区咪爱| 国产视频亚洲视频| 萌白酱国产一区二区| 精品亚洲一区二区三区在线播放| 亚洲美女www午夜| 国产欧美精品va在线观看| 日韩国产激情在线| 欧美高跟鞋交xxxxxhd| 欧美一级淫片aaaaaaa视频| 主播福利视频一区| 91亚洲精品视频| 91深夜福利视频| 午夜精品一区二区三区av| 成人av资源在线播放| 国产精品一区久久久| 欧美精品成人91久久久久久久| 久久视频国产精品免费视频在线| 国产精品电影观看| 亚洲成年网站在线观看| 国产成+人+综合+亚洲欧美丁香花| 日本中文字幕久久看| 亚洲国产福利在线| 91亚洲国产成人久久精品网站| 亚洲第一视频网站| 欧美丰满少妇xxxxx做受| 国产精品久久久久久久久久久不卡| 国产精品中文久久久久久久| 欧美成人自拍视频| 黑人精品xxx一区一二区| 91视频-88av| 欧美日韩一区二区免费在线观看| 在线观看国产精品91| 日韩风俗一区 二区| 成人精品一区二区三区| 亚洲福利视频免费观看| 九九视频直播综合网| 欧美成人精品不卡视频在线观看| 亚洲综合社区网| 亚洲性av网站| 亚洲欧洲在线免费| 黑人巨大精品欧美一区二区免费| 亚洲а∨天堂久久精品喷水| 亚洲精品一区中文字幕乱码| 日韩精品免费综合视频在线播放| 亚洲精品国产suv| 国产一区二区三区精品久久久| 日韩中文字幕在线观看| 色狠狠久久aa北条麻妃| 欧美成人免费网| 欧美日韩精品国产| 国产精品久久久久久久7电影| 久久久久久久久久久免费精品| 国产一区玩具在线观看| 欧美国产日本高清在线| 欧美日本在线视频中文字字幕| 久久久国产影院| 69久久夜色精品国产7777| 国产精品视频yy9099| 日韩av在线免费| 国产精品久久久久7777婷婷| 久久精品青青大伊人av| 欧美午夜宅男影院在线观看| 日韩精品中文字幕在线| 亚洲第一二三四五区| 国产日韩精品综合网站| 国产精品女主播视频| 久久久这里只有精品视频| 色偷偷噜噜噜亚洲男人| 久久久久亚洲精品成人网小说| 国产精品高潮呻吟久久av无限| 国产精品视频区| 久久99久国产精品黄毛片入口| 国产精品视频26uuu| 懂色av一区二区三区| 97国产一区二区精品久久呦| 日韩在线观看免费全| 国产激情视频一区| 国产精品成人av在线| 日韩在线观看免费全| 2024亚洲男人天堂| 久久久久久综合网天天| 最近中文字幕日韩精品| 国产日韩在线精品av| 亚洲午夜未删减在线观看| 国产精品三级久久久久久电影| 欧美日韩国产成人| 欧美在线视频a| 日本三级久久久| 欧美精品电影在线| 久久久亚洲国产天美传媒修理工| 久久久久久亚洲| 美女999久久久精品视频| 国产日韩精品电影| 国产视频久久网| 欧美老女人在线视频| 久久国产精品久久久久| 欧美性videos高清精品| 欧美午夜精品在线| 欧美精品激情视频| 亚洲自拍偷拍在线| 国产不卡av在线| 亚洲精品小视频在线观看| 日韩免费观看高清| 欧美大学生性色视频| 中文字幕日本欧美| 亚洲最大成人在线| 亚洲欧美激情另类校园| 亚洲精品一二区| 久久精品国产69国产精品亚洲| 91精品国产综合久久香蕉的用户体验| 日韩三级成人av网| 欧美在线观看网站| 韩曰欧美视频免费观看| 亚洲一区二区三区久久| 国产成+人+综合+亚洲欧美丁香花| 亚洲男女自偷自拍图片另类| 日韩综合中文字幕| 亚洲欧美国产一区二区三区| 欧美超级免费视 在线| 亚洲成年人影院在线| 国产在线精品一区免费香蕉| 亚洲欧美www| 日本精品久久久| 欧美极品在线视频| 超碰日本道色综合久久综合| 精品动漫一区二区三区| 精品久久久久久久久久久久久| 777国产偷窥盗摄精品视频| 久久精品国产视频| 亚洲欧美在线一区二区| 色琪琪综合男人的天堂aⅴ视频| 92看片淫黄大片看国产片| 亚洲欧美激情另类校园| 国产一区二区丝袜| 久久亚洲电影天堂| 久久久久久久久亚洲| zzijzzij亚洲日本成熟少妇| 911国产网站尤物在线观看| 欧美精品在线网站| 日韩**中文字幕毛片| 亚洲欧美www| 久久精品电影网站| 亚洲黄色av女优在线观看| 日韩高清电影好看的电视剧电影| 日韩大陆欧美高清视频区| 国产精品久久久久久久9999| 青草青草久热精品视频在线网站| www国产91| 国产精品视频免费在线| 成人h视频在线观看播放| 日韩在线中文字| 欧美激情手机在线视频| 日韩av免费在线播放| 最近2019年好看中文字幕视频| 超碰精品一区二区三区乱码| 亚洲国产天堂网精品网站| 国产亚洲欧美视频| 亚洲免费中文字幕| 日韩av在线影院|