我正在用PHP解析电子邮件。我已经完成了解析器,但现在我很好奇是否有任何简单的方法可以从From标头中提取名称和电子邮件,如下所示:
来源:John Doe <john.doe@hotmail.com>
有没有把John Doe
和john.doe@hotmail.com
分开的捷径?
您可以尝试使用preg_match()创建正则表达式。
/From:'s*(.*[^'s])'s*<'s*(.*[^'s])'s*>/
这应该会得到索引一和索引二中的姓名和电子邮件地址。
如果可以安装mailparse
PECL扩展,您可以尝试使用它。如果没有,提取From:
标头并对其进行解析。发件人的姓名是可选的,所以它可能不在那里,但电子邮件应该存在(但要注意垃圾邮件发送者)。有关更多详细信息,请参阅RFC 822和RFC 2822。