(第一次用 PHP 编程。有一些帮助。需要更多。)
目标:
从我的 gmail 帐户的给定电子邮件地址中提取 lastContactDate。希望回答这个问题,“我最后一次联系 [Person] 是什么时候”
到目前为止我所做的:
- 使用 imap 连接到 gmail(仅限收件箱)
- 抓到日期和时间
- 打印人名和时间戳。
我不能做的:
- 搜索已归档的 lastContactDate 电子邮件(我是收件箱=0 的人)
笔记:
- 代码很粗糙,但很实用。php 确实应该分开到不同的页面上,但这是第一次尝试。提前感谢您的帮助!
- 喜欢编程,顺便说一句。在过去的两天里,我不止一次跳了一点@edw519 舞。
研究:
- 我认为弄乱 imap_open 和 imap_search 的参数可能是我最好的选择,但不确定。
- 一直在大量使用这两个页面:
- http://php.net/manual/en/function.imap-open.php
- http://php.net/manual/en/function.imap-search.php
到目前为止使用的代码:
/* connect to gmail */
$gmailhostname = '{imap.gmail.com:993/imap/ssl}';
$gmailusername = "___@gmail.com";
$gmailpassword = "___";
/* try to connect */
$conn = imap_open($gmailhostname,$gmailusername,$gmailpassword) or die('Cannot connect to Gmail: ' . imap_last_error());
$query = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($query))
{
$findemail = $row["email"];
/* grab emails */
$emails = imap_search($conn,'FROM "'.$findemail.'"');
/* if emails are returned, cycle through each... */
if ($emails) {
/* begin output var */
$output = '';
/* put the newest emails on top */
rsort($emails);
/* for 5 emails... */
$emails = array_slice($emails,0,1);
foreach ($emails as $email_number) {
/* get information specific to this email */
$overview = imap_fetch_overview($conn,$email_number,0);
$message = imap_fetchbody($conn,$email_number,2);
/* output the email header information */
/*
$output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">';
$output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
$output.= '<span class="from">'.$overview[0]->from.'</span>';
*/
$output.= '<span class="from">'.$overview[0]->from.'</span> ';
$output.= '<span class="date">on '.$overview[0]->date.'</span> <br /><br />';
mysql_query("UPDATE users SET lastContactDate = '".$overview[0]->date."' WHERE email = '".$findemail."'") or die(mysql_error());
/* output the email body */
/* $output.= '<div class="body">'.$message.'</div>'; */
}
echo $output;
}
}
/* close the connection */
imap_close($conn);
?>