我正在尝试创建一个PHP脚本来查看我的Gmail帐户。
我已成功登录,但发现了一些我不确定的问题
登录脚本:(我已连接)
$hostname = '{imap.gmail.com:993/imap/ssl}';
$username = "USERNAME@gmail.com";
$password = "PASSWORD";
/* try to connect */
$hostname = '{imap.gmail.com:993/ssl}[Gmail]/All Mail';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
循环浏览我的电子邮件的代码: -
$emails = imap_search($inbox,'ALL');
/* if emails are returned, cycle through each... */
if($emails) {
echo "FOUND EMAIlS<br />\n";
$x=0;
foreach ($emails as $ab => $email_number)
{
echo "'$ab '$email_number'<br />\n";
$overview = imap_fetch_overview($inbox,$email_number,0);
echo " Ov = '$overview'<br />\n";
(我有一个$ x的计数器,用于在20封电子邮件后停止脚本)
问题1: -
如果我使用print_r($overview);
它完全正常 - 但如果我在$overview
上使用foreach循环,我会收到错误: -
捕获致命错误:类stdClass的对象无法转换为(PATHNAME)第37行中的字符串
好奇 - 为什么我可以在数组上使用print_r
,但不能使用foreach?有什么原因吗?
问题2: -
&#34;来自&#34;结果显示了该人的姓名 - &#34; john smith&#34;。有没有办法获取电子邮件地址?(我确实在TO字段中看到了一些电子邮件地址,如果我没有在我的联系人中找到它们,但在FROM字段中没有。)
问题3:
我几小时前找到了谷歌搜索(但忘了给它添加书签),你可以使用常规的MYSQLI命令来搜索电子邮件,但我无法通过PHP脚本进行连接。所以我开始搜索workig连接脚本。
是否有不同的连接方式,所以我们可以使用常规的MYSQL命令?
终极目标:检索所有FROM&#34;电子邮件地址的列表&#34; (不是发件人的姓名),也可能是电子邮件的数量?
我有30,000多封电子邮件,&amp;可以通过一个cron-job在一段时间内完成这个过程 - 建立一个列表。
编辑:当我插入print_r命令时,FROM名称的电子邮件地址不是检索到的其中一个
编辑:添加了imap_open行
编辑:输出PRINT_R($输出);
Array
(
[0] => stdClass Object
(
[subject] => subject line of email
[from] => From name
[to] => emailaddress@toperson.com
[date] => Sat, 10 Jul 2004 03:13:12 +1200
[message_id] => <9a3273a0040709081340933b3a@mail.gmail.com>
[size] => 1132
[uid] => 27
[msgno] => 21
[recent] => 0
[flagged] => 0
[answered] => 0
[deleted] => 0
[seen] => 1
[draft] => 0
)
)
这是我最早的消息。它确实包括我发送消息TO的电子邮件地址,但不包括FROM的电子邮件地址(一些电子邮件是给我的 - 但仍然没有显示发件人的电子邮件地址)
答案 0 :(得分:1)
您应该以这种方式阅读:
foreach($overview as $entry) {
$subject = $entry->subject;
}