2013-03-26 36 views
0

我想要一個非常可靠的方式從電子郵件標題中檢索數據。我是否應該使用電子郵件解析器,例如https://github.com/plancake/official-library-php-email-parser或者php imap函數是否足以獲取該數據?什麼是最佳做法?有什麼經驗嗎?我可以想象,由許多電子郵件客戶端組成的格式化電子郵件標題有很多不同之處。這就是爲什麼我需要可靠的解決方案。電子郵件解析器或php的imap功能?

回答

1

我使用內置的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)。這部分將返回標題。一旦你得到它們,你可以解析或使用它,如你所願。

希望它有幫助。

+0

謝謝!其實我的問題是關於解析,所以檢索標題後。使用單獨的解析器或使用imap_header()來完成此操作更安全,然後只需獲取該對象的值。 – 2013-03-27 06:19:21

+0

對不起。既然你從IMAP服務器本身獲得這些數據,是的。我相信這是獲取郵件標題最可靠的方式。 – Tim 2013-03-27 13:26:37