使用 imap 访问电子邮件
Posted
技术标签:
【中文标题】使用 imap 访问电子邮件【英文标题】:Access emails using imap 【发布时间】:2014-08-22 21:35:56 【问题描述】:我在 Ubuntu 14.02 上使用 Apache 并在其上运行 php。我已连接到远程 mssql 服务器,因此不需要 mysql 。
我想知道如何连接到使用 gmail 注册的电子邮件 ID,以便阅读收到的电子邮件。
我已经尝试了以下方法,但是从我的本地主机运行它时显示一个空白屏幕:
<?php
error_reporting('E_ALL');
$mailboxPath = "imap.gmail.com:993/imap/sslINBOX";
$username = "my_email@gmail.com";
$password = "mypassword";
$imap = imap_open($mailboxPath, $username, $password);
print_r($imap);
?>
我在运行程序时插入了我的实际 gmail 用户名和密码。我想知道我是否遗漏了什么。
非常感谢
【问题讨论】:
imap_last_error()
的输出是什么?
1) 您的用户名和密码是否正确? 2) 将行$imap = imap_open($mailboxPath, $username, $password);
更改为$imap = imap_open($mailboxPath, $username, $password) or die('Cannot connect to Gmail: ' . imap_last_error());
。现在您会注意到,为什么您无法连接到 Gmail。
您好,谢谢您的回复,以下是我的错误:无法连接到 Gmail:无法对 IMAP 服务器进行身份验证:[ALERT] 请通过您的网络浏览器登录:support.google.com/mail/accounts
【参考方案1】:
解决方法如下:
登录您的 gmail 帐户,启用 imap。
先让这里访问:https://www.google.com/settings/security/lesssecureapps
转至:https://accounts.google.com/b/0/DisplayUnlockCaptcha 并启用访问权限。
就是这样。
当我尝试在 php 上使用 imap 接收电子邮件时,我遇到了完全相同的问题。 我正在运行完全相同的脚本,我知道它可以与我的其他 gmail 一起使用。
解决方法如上,错误信息为:
错误:无法对 IMAP 服务器进行身份验证:[ALERT] 请通过您的网络浏览器登录
【讨论】:
当您在帐户设置中启用 IMAP 时,默认 IMAP 设置就可以了。如果您在移动消息时遇到问题,请确保在您的个人资料语言设置中选择了英语 - 美国。【参考方案2】:您是否在php.ini
文件中激活了 imap.so 扩展? extension=imap.so
这是 localhost 服务器出现问题的根本原因
【讨论】:
所以你的本地主机上可能没有激活 openSSL 如果不是 ssl 问题,请使用错误消息中的链接登录您的 gmail 帐户,检查是否有关于可疑连接的消息,并通过以下方式验证新客户端输入您的登录名和密码【参考方案3】:试试这个(你需要打开你的出站中继):
在 google.com/a/yourdomain.com 上登录您的帐户 单击“设置”选项卡,然后在左侧栏中选择“电子邮件”。 在出站中继部分中,选择允许用户在配置域外托管的“发件人”地址时通过外部 SMTP 发送邮件。 点击保存更改。
【讨论】:
我不确定您所说的 google.com/a/yourdomain.com 是什么意思。我想访问个性化的 gmail 收件箱。我没有看到与出站中继有关的任何设置或任何选项卡。谢谢。以上是关于使用 imap 访问电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。(示例
使用 OAuth 登录的 Google 电子邮件返回 Chimlkat.Imap 的无效凭据
如何使用 Zend_Mail_Protocol_Imap 或 Zend_Mail_Storage_Imap 批量检索电子邮件
中科大 计算机网络14 EMail SMTP简单邮件传输协议 POP3邮件传输协议 IMAP消息访问协议 HTTP超文本传输协议