Php Swift Mailer:如何将“name”<email>转换为Swift Message接受的格式?

时间:2016-10-11 22:31:56

标签: php regex smtp swiftmailer

我正在尝试使用SwiftMailer发送邮件。我的问题是我收到fromto地址的格式是这样的:

$from = '"first last" <email@domain.com>';

但是当我使用这个

$message = Swift_Message::newInstance()->setFrom($from);

我收到以下错误:

Address in mailbox given ["first last" <email@domain.com>] does not comply with RFC 2822, 3.6.2

我认为这是因为Swift邮件程序除了格式

 $message = Swift_Message::newInstance()->setFrom(['email@domain.com' => 'First Last']);

所以我的问题是如何转换

    "first last" <email@domain.com> => ['email@domain.com' => 'First Last']

我可以使用正则表达式但是可能有很多情况,例如如果引号不存在,电子邮件是否包含尖括号等等?

最简单的方法是什么?

编辑:添加更多信息以澄清

fromto电子邮件是用户在数据库中保存的内容,它们有多种格式,例如"name" <email>name <email><email> ,或有时只是email我想将所有这些字符串输入规范化为可以传递给Swift_Message::newInstance()->setFrom函数的内容

0 个答案:

没有答案