我使用內置的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