PHP代码:
/** 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 '<dt>共有 '.$numMsg.' 条未读邮件</dt>'; for ($i = 1; $i <= $numMsg; ++$i) { $hd = imap_headerinfo($inbox, $i); $subject = parse_mailstr($hd->subject); echo '<dd>'; echo "标 题:$subject <br />"; echo '发件人:'. $hd->from[0]->mailbox .'@'. $hd->from[0]->host .'<br />'; if (isset($hd->date)) { $date = strtotime($hd->date); $date = date('Y-m-d H:i:s',$date); echo "时 间:$date <br />"; } echo '</dd>'; } imap_close($inbox); } }
HTML代码:
<!DOCTYPE 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> <?php recevie_email();?> </dl> </body> </html>
获得邮箱授权码方法:
进入 QQ 邮箱,依次进入【设置】-【账号】-【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-管理服务】-【安全设置】-【生成授权码】。