我有一些电子邮件,我用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