PHP使用imap_open读取QQ邮箱

PHP代码:

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代码:

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服务-管理服务】-【安全设置】-【生成授权码】。

相关推荐
Halo_tjn18 分钟前
Set集合专项实验
java·开发语言·前端·python
席万里19 分钟前
关于Go的init函数执行顺序#黑魔法
开发语言·网络·golang
橘子真甜~1 小时前
C/C++ Linux网络编程6 - poll解决客户端并发连接问题
服务器·c语言·开发语言·网络·c++·poll
9***Y481 小时前
Java开发工具IntelliJ IDEA技巧
java·开发语言·intellij-idea
码力码力我爱你1 小时前
C++性能基准测试
开发语言·c++
张人玉1 小时前
C#WPF——MVVM框架编写管理系统所遇到的问题
开发语言·c#·wpf·mvvm框架
last demo1 小时前
nfs服务器
linux·运维·服务器·php
java1234_小锋2 小时前
讲讲Mybatis的一级、二级缓存?
java·开发语言·mybatis
z***I3942 小时前
JavaScript原型链
开发语言·前端·javascript
x***58702 小时前
JavaScript语音识别开发
开发语言·javascript·语音识别