在PHP中从电子邮件头中提取名称和电子邮件
我正在用PHP解析电子邮件。我已经完成了解析器,但现在我很好奇是否有简单的方法可以从From头中提取姓名和电子邮件,如下所示: 发件人:在PHP中从电子邮件头中提取名称和电子邮件,php,string,parsing,split,Php,String,Parsing,Split,我正在用PHP解析电子邮件。我已经完成了解析器,但现在我很好奇是否有简单的方法可以从From头中提取姓名和电子邮件,如下所示: 发件人:John Doe 有没有捷径可以找到johndoe和John。doe@hotmail.comseparate?如果可以安装,可以尝试使用mailparsePECL扩展。如果不是,则从:头中提取,并对其进行解析。发件人的名字是可选的,所以可能不存在,但电子邮件应该有(不过要小心垃圾邮件发送者)。有关更多详细信息,请参见和,如果可以安装,您可以尝试使用mailpar
John Doe
有没有捷径可以找到
johndoe
和John。doe@hotmail.com
separate?如果可以安装,可以尝试使用mailparse
PECL扩展。如果不是,则从:头中提取,并对其进行解析。发件人的名字是可选的,所以可能不存在,但电子邮件应该有(不过要小心垃圾邮件发送者)。有关更多详细信息,请参见和,如果可以安装,您可以尝试使用mailparse
PECL扩展。如果不是,则从:
头中提取,并对其进行解析。发件人的名字是可选的,所以可能不存在,但电子邮件应该有(不过要小心垃圾邮件发送者)。有关详细信息,请参见和。您可以尝试使用正则表达式
/From:\s*(.[^\s])\s*/
这将在索引1和索引2中获得名称和电子邮件地址。您可以尝试使用正则表达式
/From:\s*(.[^\s])\s*/
这应该可以在索引1和索引2中找到您的姓名和电子邮件地址。我正在使用mailparse。但它给了我一个完整的标题,“Name”通常是“FOO”或“”(所以尖括号总是在那里)。另外(通常是垃圾邮件发送者)可以从以下位置输入更多地址:,但它之间用“,”分隔,我正在使用mailparse。但它给了我一个完整的标题,“Name”通常是“FOO”或“”(所以尖括号总是在那里)。而且(通常是垃圾邮件发送者)可以从以下位置放入更多地址,但随后用“,”分隔
/From:\s*(.*[^\s])\s*<\s*(.*[^\s])\s*>/