php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #72016 mailparse_rfc822_parse_addresses removes space in display element
Submitted: 2016-04-13 14:59 UTC Modified: 2021-09-02 11:38 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: jochem dot blok at fasterforward dot nl Assigned:
Status: Verified Package: mailparse (PECL)
PHP Version: 5.6.20 OS: Ubuntu 14.04
Private report: No CVE-ID: None
 [2016-04-13 14:59 UTC] jochem dot blok at fasterforward dot nl
Description:
------------
While parsing the addresslist from a mime mail the mailparse_rfc822_parse_addresses is used to split the name from the address. This function removes a space which is in the name.

Test script:
---------------
$a = mailparse_rfc822_parse_addresses('Foo Bar é [TEST] <foo@bar.com>');
var_dump($a);


Expected result:
----------------
array(1) {
  [0]=>
  array(3) {
    ["display"]=>
    string(17) "Foo Bar é [TEST]"
    ["address"]=>
    string(11) "foo@bar.com"
    ["is_group"]=>
    bool(false)
  }
}


Actual result:
--------------
array(1) {
  [0]=>
  array(3) {
    ["display"]=>
    string(16) "Foo Bar é[TEST]"
    ["address"]=>
    string(11) "foo@bar.com"
    ["is_group"]=>
    bool(false)
  }
}

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-10-20 09:19 UTC] sander at onlineactivity dot nl
Happens with ? and ! as well

Hello? ee e! ee <a@a.com>

parses as

Hello?ee e!ee

On PHP 7.4.11 / Mailparse 3.1.1 / CentOS 7
 [2021-09-02 11:38 UTC] cmb@php.net
-Status: Open +Status: Verified
 [2021-09-02 11:38 UTC] cmb@php.net
I can confirm the reported behavior.  However, this is an invalid
email address according to RFC 822 and 2822, since neither spaces
nor brackets are valid dot-atoms, and the local part is not and
does not contain quoted-strings. The proper address

    '"Foo Bar é [TEST]" <foo@bar.com>'

is parsed as expected, as well as the obsolete variant

    'Foo Bar é "[TEST]" <foo@bar.com>'

Anyhow, the parser should not return the actual result, at least
not without signalling some kind of failure.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Nov 22 00:01:30 2024 UTC