使用PHP从 Gmail 帐户读取电子邮件将是 Web 开发人员的一项丰富任务,因为它通过IMAP (互联网消息访问协议)简化了代码。有时,Web 项目或客户可能需要完整管理收件箱电子邮件或从其 Gmail 帐户访问电子邮件内容。此功能在电子邮件营销或电子邮件通讯中也很有用,这些电子邮件将按特定时间表自动发送。因此,在研究 Gmail 帐户访问权限时,应该尝试使用PHP及其 IMAP 功能扩展列出来自 Gmail 帐户的电子邮件。
IMAP 是客户端使用的 Internet 标准协议,用于通过具有 SSL 安全性的 TCP/IP 连接从邮件服务器获取电子邮件。 PHP库中提供的 IMAP 扩展可有效处理其电子邮件结构,并通过与电子邮件服务器通信来访问电子邮件。
我们使用PHP代码连接到 Gmail 服务器,并使用标准 IMAP 函数打开 Gmail 帐户并根据特定条件访问或获取电子邮件。
基本要求:开发功能需要以下条件。
- PHP5 或最新的PHP版本。
- 在PHP安装中启用 IMAP 扩展。
- 在 Gmail 帐户设置中,应启用 IMAP。
在 XAMPP 中启用 IMAP 的步骤:
- 转到PHP.ini 配置文件
- 搜索“;extension=php_imap.dll”
- 去掉分号的开头,它应该是“extension=php_imap.dll”
- 同时编辑 max_execution_time = 4000
在 Gmail 帐户中启用 IMAP 的步骤:
- 打开 Gmail。
- 单击设置。
- 选择转发和 POP/IMAP 蓝色选项卡。
- 选择“IMAP 访问:”部分和启用 IMAP 单选按钮。
- 单击保存更改。
- 不要忘记为 Gmail 帐户的安全性较低的应用程序打开访问权限。
注意:对于普通应用程序,IMAP 服务器侦听 143 端口号。
PHP代码:以下是列出来自 Gmail 帐户的电子邮件的 HTML 和PHP代码。要连接到 Gmail,开发者需要在代码中设置个人的“用户名”和“密码”。连接后,我们使用imap_search()函数根据特定条件搜索所有电子邮件或电子邮件。电子邮件以相反的方式排序,以便使用PHP rsort()函数将最新的邮件放在顶部。这个PHP函数按降序对数组进行排序。对于返回的每封电子邮件,都会捕获主题、发件人、部分内容和日期时间消息。 imap_fetchbody()函数获取电子邮件正文的特定部分。因此,要获取电子邮件的纯文本部分,我们可以使用“1.1”选项作为第三个参数。
HTML
List Emails from Gmail using PHP and IMAP
';
}// End foreach
$mailOutput.= '';
echo $mailOutput;
}//endif
/* imap connection is closed */
imap_close($conn);
?>
CSS
body {
font-family: Arial;
}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
tr:nth-child(even) {
background-color: #dddddd;
}
td, th {
padding: 8px;
width:100px;
border: 1px solid #dddddd;
text-align: left;
}
.form-container {
padding: 20px;
background: #F0F0F0;
border: #e0dfdf 1px solid;
border-radius: 2px;
}
* {
box-sizing: border-box;
}
.columnClass {
float: left;
padding: 10px;
}
.row:after {
content: "";
display: table;
clear: both;
}
.btn {
background: #333;
border: #1d1d1d 1px solid;
color: #f0f0f0;
font-size: 0.9em;
width: 200px;
border-radius: 2px;
background-color: #f1f1f1;
cursor: pointer;
}
.btn:hover {
background-color: #ddd;
}
.btn.active {
background-color: #666;
color: white;
}
CSS 代码:以下是上述代码中使用的“style.css”文件的代码。
CSS
body {
font-family: Arial;
}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
tr:nth-child(even) {
background-color: #dddddd;
}
td, th {
padding: 8px;
width:100px;
border: 1px solid #dddddd;
text-align: left;
}
.form-container {
padding: 20px;
background: #F0F0F0;
border: #e0dfdf 1px solid;
border-radius: 2px;
}
* {
box-sizing: border-box;
}
.columnClass {
float: left;
padding: 10px;
}
.row:after {
content: "";
display: table;
clear: both;
}
.btn {
background: #333;
border: #1d1d1d 1px solid;
color: #f0f0f0;
font-size: 0.9em;
width: 200px;
border-radius: 2px;
background-color: #f1f1f1;
cursor: pointer;
}
.btn:hover {
background-color: #ddd;
}
.btn.active {
background-color: #666;
color: white;
}
输出:以下是检索到的主题为“评论”的电子邮件的输出。