php imap读取邮箱邮件信息 刺骨的言语ヽ痛彻心扉 2022-12-21 00:51 201阅读 0赞 * 在需求中需要能够监控邮箱的邮件,要满足这个功能得能够读取邮件的内容才行 * 这里使用一个我自己开发的一个基于imap拓展的composer来进行完成,目前无法读取附件,一般监控也是监控文字,算是满足基本需求 * 安装拓展 > composer require superkingm/mail * 使用,我这里以在laravel框架中使用为例子 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use MailBox\MailBox; class TtController extends Controller { public function tt(){ $username = '396656156@qq.com';//名称 $password = 'dsadsafdsds';//授权码 $email_address = '396656156@qq.com';//地址 $mail_server = 'imap.qq.com';//服务器地址 $server_type = 'imap'; $port = 143; $mail = new MailBox($username, $password, $email_address, $mail_server, $server_type, $port); $mail->connect(); echo $mail->get_mail_total();//结果为15封邮件 } } * 获取邮件人,收件人,等信息 $head = $mail->get_imap_header(15);//获取第15封信的原始头信息 $head_info = $mail->get_header_info($head);//获取头信息 -----------------结果--------------------- 'from' => string '1942317446@qq.com' (length=17) 'fromName' => string '沐浴★雾中雨' (length=18) 'toOth' => string '1942317446@qq.com' (length=17) 'toNameOth' => string '沐浴★雾中雨' (length=18) 'subject' => string '阿虎提二道湾所大' (length=24) 'to' => string '1250728606 <1250728606@qq.com>, 396656156 <396656156@qq.com>' * 获取邮件时间 $mail->get_date(15)//时间戳1605245766 * 获取邮件内容 $mail->get_body(15);//结果返回html内容 <meta http-equiv="Content-Type" content="text/html; charset=GB18030"><div><img src="https://rescdn.qqmail.com/zh_CN/images/mo/DEFAULT2/51.gif"><img src="https://rescdn.qqmail.com/zh_CN/images/mo/DEFAULT2/48.gif">大萨达撒大萨达撒<br></div> ![在这里插入图片描述][20201113141116520.png_pic_center] * 判断邮件是否已读 $head = $mail->get_imap_header(15) $mail->is_unread($head)//true为已读,false为未读 * 将邮件设置为已读 $mail->mark_mail_read(15); * 将邮件设置为未读 $mail->mark_mail_un_read(15) * 删除邮件 $mail->delete_mail(15); [20201113141116520.png_pic_center]: /images/20221120/140d415a8e9b4523b5ae4ed738dbd268.png
还没有评论,来说两句吧...