PHP 8.4.0 RC4 available for testing

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addressesAnalyse des adresses

Description

mailparse_rfc822_parse_addresses(string $addresses): array

Analyse une liste d'adresses valides eu égard à la » RFC 822, comme celles trouvées dans l'en-tête To:.

Liste de paramètres

addresses

Une chaîne de caractères contenant les adresses, comme : Wez Furlong <wez@example.com>, doe@example.com

Note:

Cette chaîne de caractères ne doit pas contenir le nom de l'en-tête.

Valeurs de retour

Retourne un tableau de tableaux associatifs contenant les clés suivantes pour chaque adresses :

display Le nom de l'adresse, aux fins d'affichage. Si cette partie n'est pas définie pour une adresse, il contiendra la même valeur que la clé address.
address L'adresse email
is_group true si l'adresse est un newsgroup, false sinon.

Exemples

Exemple #1 Exemple avec mailparse_rfc822_parse_addresses()

<?php

$to
= 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}

add a note

User Contributed Notes 3 notes

up
0
murph dot vienna at gmail dot com
10 years ago
<?php
// input: My Test Email <some.test.email@somewhere.net>

function get_displayname_from_rfc_email($rfc_email_string) {
// match all words and whitespace, will be terminated by '<'
$name = preg_match('/[\w\s]+/', $rfc_email_string, $matches);
$matches[0] = trim($matches[0]);
return
$matches[0];
}
// Output: My Test Email

function get_email_from_rfc_email($rfc_email_string) {
// extract parts between the two parentheses
$mailAddress = preg_match('/(?:<)(.+)(?:>)$/', $rfc_email_string, $matches);
return
$matches[1];
}
// Output: some.test.email@somewhere.net
?>
up
0
Anonymous
19 years ago
An alternative to the mailparse_rfc822_parse_addresses() function is Mail_RFC822::parseAddressList() from Pear:

http://pear.php.net/manual/en/package.mail.mail.php

It parses the string and returns a structured tree of data. Returns a pear_error object if the string is not valid.

Example:

require_once "PEAR.php";
require_once "Mail/RFC822.php";

$addr= "Hi <hi@world.org>";

$res= Mail_RFC822::parseAddressList($addr);
if (PEAR::isError($res)) die("NOT VALID: " . $res->getMessage() . "\n");
echo "OK. Data:\n";
print_r($res);
up
0
mat at phpconsulting dot com
21 years ago
If for some reason you cannot compile mailparse into your install of PHP, you will also find an extremely similar function in the Mail_MIME PEAR class, specifically in mimeDecode.php.
To Top