我使用内置的IMAP函数来处理需要按日期处理电子邮件的项目,而实际上并不需要其他任何内容。您可以尝试使用下面的代码来查看它们对您是否有用;
<?php
/* connect to gmail */
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'pass123';
/* try to connect */
$inbox = imap_open($hostname, $username, $password, OP_READONLY,1) or die('Cannot connect to Gmail: ' . print_r(imap_last_error()));
$emails = imap_search($inbox, 'ALL');
/* if emails are returned, cycle through each... */
if ($emails) {
foreach ($emails as $email_number) {
echo imap_fetchbody($inbox, $email_number, 0);
echo imap_fetchbody($inbox, $email_number, 1);
echo imap_fetchbody($inbox, $email_number, 2);
}
}
imap_close($inbox);
?>
棘手的部分是imap_fetchbody($inbox, $email_number, 0)
。这部分将返回标题。一旦你得到它们,你可以解析或使用它,如你所愿。
希望它有帮助。
来源
2013-03-27 00:03:59
Tim
谢谢!其实我的问题是关于解析,所以检索标题后。使用单独的解析器或使用imap_header()来完成此操作更安全,然后只需获取该对象的值。 – 2013-03-27 06:19:21
对不起。既然你从IMAP服务器本身获得这些数据,是的。我相信这是获取邮件标题最可靠的方式。 – Tim 2013-03-27 13:26:37