从PHP中的From电子邮件标头中提取姓名和电子邮件


Extracting name and email out of a From email header in PHP

我正在用PHP解析电子邮件。我已经完成了解析器,但现在我很好奇是否有任何简单的方法可以从From标头中提取名称和电子邮件,如下所示:

来源:John Doe <john.doe@hotmail.com>

有没有把John Doejohn.doe@hotmail.com分开的捷径?

您可以尝试使用preg_match()创建正则表达式。

/From:'s*(.*[^'s])'s*<'s*(.*[^'s])'s*>/

这应该会得到索引一和索引二中的姓名和电子邮件地址。

如果可以安装mailparse PECL扩展,您可以尝试使用它。如果没有,提取From:标头并对其进行解析。发件人的姓名是可选的,所以它可能不在那里,但电子邮件应该存在(但要注意垃圾邮件发送者)。有关更多详细信息,请参阅RFC 822和RFC 2822。