zendframework/zend-mail

Problems with mailadress parsing

Baztey opened this issue · 2 comments

Example Email-header:
"Foo <bar" foo.bar@test.com

Description:
The example email-header should be valid according to https://tools.ietf.org/html/rfc2822#section-3.4 but the function AdressList.php/addFromString matches it incorrect. The result has the following form:
"bar <foo.bar@test.com"
This is clearly not a valid adress and therefore causes exceptions in the following code

Solution:
Changing the regex in the addFromString function from lazzy to greedy by removing "?" from the named capture group "name"

  • old: ^((?P.*?)<(?P[^>]+)>|(?P.+))$
  • new: ^((?P.*)<(?P[^>]+)>|(?P.+))$

@Baztey created PR based on your comments, including tests:
#143

however, it needs more fixes, because encoding back creates invalid result.

btw, your bugreport here has lost <>, use markdown code blocks to preserve them.

This repository has been closed and moved to laminas/laminas-mail; a new issue has been opened at laminas/laminas-mail#45.