Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从完整邮件头中提取电子邮件_Php - Fatal编程技术网

Php 如何从完整邮件头中提取电子邮件

Php 如何从完整邮件头中提取电子邮件,php,Php,我有一些用PHP打开的电子邮件,现在需要获取发件人的电子邮件地址。有人能告诉我这个需要使用什么功能吗?我已经有了用PHP打开的电子邮件 编辑: 这是一个棘手的问题还是我解释得不够好 我是否使用preg_match从打开的内容中获取电子邮件地址?嘿。您可以使用正则表达式来进行此操作 $regexp = '/From:\s*(([^\<]*?) <)?<?(.+?)>?\s*\n/i'; if(preg_match($regexp, $email, $matches)) {

我有一些用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";
}

$regexp='/From:\s*([^\嘿。您可以为此使用正则表达式

$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";
}
$regexp='/From:\s*([^\一些邮件发送库可以解析原始电子邮件,而Zend_mail应该能够通过将原始电子邮件传递给Zend_mail_Message对象来解析原始电子邮件。(注意:据我所知,读取原始邮件是不可能的。)

如果您只需要发送者,那么最好使用一个好的正则表达式,但是,如果您要测试其他标题/操纵正文/mime部分,那么使用库是值得的。

一些邮件发送库可以解析原始电子邮件,而Zend_mail应该能够通过将原始电子邮件传递给Zend_mail_Message对象来解析原始电子邮件。(注意:据我所见,阅读原始信息并非易事。)


如果您只需要发送方,那么最好使用一个好的正则表达式,但是,如果您要测试其他头文件/操作正文/mime部分,那么使用库是值得的。

您如何解析输出?您如何解析输出?