我有一些電子郵件,我用PHP打開,現在需要獲取發件人的電子郵件地址。有人能告訴我我需要使用什麼功能嗎?我已經有了用PHP打開的電子郵件。如何從完整標題中提取電子郵件
編輯: 這是一個棘手的問題,還是我只是不解釋得夠好?
我是否使用preg_match從打開的內容中獲取電子郵件地址?
我有一些電子郵件,我用PHP打開,現在需要獲取發件人的電子郵件地址。有人能告訴我我需要使用什麼功能嗎?我已經有了用PHP打開的電子郵件。如何從完整標題中提取電子郵件
編輯: 這是一個棘手的問題,還是我只是不解釋得夠好?
我是否使用preg_match從打開的內容中獲取電子郵件地址?
嘿。你可以使用一個正則表達式。
$regexp = '/From:\s*(([^\<]*?) <)?<?(.+?)>?\s*\n/i';
if(preg_match($regexp, $email, $matches)) {
echo "Name: " . $matches[2] . "\r\n";
echo "Email: " . $matches[3] . "\r\n";
}
else {
echo "No match";
}
如果沒有包含名稱,「名稱」部分將僅爲空。
這應該適用於標準From頭。假設您使用的是原始電子郵件,標題和全部內容。
一些郵件發送庫可以分析原始郵件,而not that well documented的Zend_Mail應該能夠通過你的原始電子郵件給Zend_Mail_Message對象做到這一點。 (注:Reading mailboxes is well documented,從我所看到的,在讀生的消息是不是)
$message = new Zend_Mail_Message(array(), $filename);
$sender = $message->getHeader('From');
如果你需要的是發送者,然後一個良好的正則表達式將是更好地使用,但是,如果你要測試其他頭文件/操作body/mime部件,那麼使用庫是值得的。
你如何解析輸出? – jay 2009-12-01 19:48:14
用file_get_contents – John 2009-12-01 19:50:35