- /**
- PHP使用imap_open读取QQ邮箱
-
- imap_open 官方文档:
- https://www.php.net/function.imap_open
- */
-
- function parse_mailstr($subject) {
- $a = explode('?',$subject);
- $n = count($a);
- $a = $a[$n-2];
- return base64_decode($a);
- }
-
- function recevie_email() {
-
- // 腾讯 QQ 邮箱为例。
- // 官方文档:https://service.mail.qq.com/detail/0/339
- $mailbox = '{imap.qq.com:993/imap/ssl}INBOX';
-
- // 要读取的邮箱
- $user = 'youremail@qq.com';
-
- // 邮箱密码或授权码。邮箱授权码生成路径如下:
- // 进入 QQ 邮箱,依次进入【设置】-【账号】-【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-管理服务】-【安全设置】-【生成授权码】
- $password = '邮箱密码或授权码';
-
- $inbox = imap_open($mailbox, $user, $password) or die(imap_last_error());
- if ($inbox) {
-
- $numMsg = imap_num_msg($inbox);
- echo '
- 共有 '
.$numMsg.' 条未读邮件'; -
- for ($i = 1; $i <= $numMsg; ++$i) {
- $hd = imap_headerinfo($inbox, $i);
-
- $subject = parse_mailstr($hd->subject);
-
- echo '
- '
; - echo "标 题:$subject
"; - echo '发件人:'. $hd->from[0]->mailbox .'@'. $hd->from[0]->host .'
'; - if (isset($hd->date)) {
- $date = strtotime($hd->date);
- $date = date('Y-m-d H:i:s',$date);
- echo "时 间:$date
"; - }
- echo '';
- }
-
- imap_close($inbox);
- }
- }
HTML代码:
- html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta name="viewport" content="width=device-width,user-scalable=yes" />
- <meta name="renderer" content="webkit" />
- <style>
- dd{
- border-bottom: 1px solid #888;
- padding-bottom: 10px;
- padding-top: 10px;
- }
- style>
- <title>PHP使用imap_open读取QQ邮箱title>
- head>
- <body>
- <dl>
-
- dl>
- body>
- html>
获得邮箱授权码方法:
进入 QQ 邮箱,依次进入【设置】-【账号】-【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-管理服务】-【安全设置】-【生成授权码】。