imap_rfc822_parse_adrlist

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_parse_adrlistBir adres dizgesini çözümler

Açıklama

imap_rfc822_parse_adrlist(string $adres, string $konak_adı): array

Belirtilen adresleri içeren dizgeyi » RFC 2822'de tanımlandığı gibi çözümler.

Bağımsız Değişkenler

adres

Eposta adreslerini içeren bir dizge.

konak_adı

Öntanımlı konak adı.

Dönen Değerler

Bir nesne dizisi döner. Nesnelerin özellikleri şunlardır:

  • mailbox - Posta kutusu ismi (kullanıcı adı)
  • host - Alan adı
  • personal - Kullanıcının adı ve soyadı.
  • adl - @ alan adres yolu

Örnekler

Örnek 1 - imap_rfc822_parse_adrlist() örneği

<?php

$address_string
= "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!
is_array($address_array) || count($address_array) < 1) {
die(
"Bir şeyler yanlış\n");
}

foreach (
$address_array as $id => $val) {
echo
"# $id\n";
echo
" Posta kutusu: " . $val->mailbox . "\n";
echo
" Alan adı: " . $val->host . "\n";
echo
" Adı ve soyadı: " . $val->personal . "\n";
echo
" adl: " . $val->adl . "\n";
}
?>

Yukarıdaki örneğin çıktısı:

# 0
  Posta kutusu:  doe
  Alan adı:      example.com
  Adı ve soyadı: Joe Doe
  adl:
# 1
  Posta kutusu:  postmaster
  Alan adı:      example.com
  Adı ve soyadı:
  adl:
# 2
  Posta kutusu:  root
  Alan adı:      example.com
  Adı ve soyadı:
  adl:

Ayrıca Bakınız

add a note add a note

User Contributed Notes 2 notes

up
1
Ian Eiloart
19 years ago
This function does NOT test the syntax of either the local part, or the host part, it will permit illegal characters on either side.

Note that 'host' refers to the email domain, not actually to any host.

The at domain list is an obsolete addressing method which was available for routing email. RFC2822 says that it must be accepted, but should be ignored in routing.

Note that if an address doesn't contain a personal part, or an "at domain list", that part of the array will be missing.

Although RFC2822 permits consecutive comma separators in a list of email addresses, this function does not. That's probably a bug.

In the following list of examples, #4 uses an "at domain list",  #5 and after are illegal domains, but only the last actually generates an error.

$adds = 'ian eiloart <iane@example.ac.uk>,
        shuf6@example.ac.uk,
        blobby,
        "ian,eiloart"<ian@example.ac.uk>,
        <@example.com:foo@example.ac.uk>,
        foo@#,
        ian@-example.com,
        ian@one@two';
$add_arr = imap_rfc822_parse_adrlist($adds, 'example.com');
var_export ($add_arr);

array (
  0 =>
  class stdClass {
    var $mailbox = 'iane';
    var $host = 'example.ac.uk';
    var $personal = 'ian eiloart';
  },
  1 =>
  class stdClass {
    var $mailbox = 'shuf6';
    var $host = 'example.ac.uk';
  },
  2 =>
  class stdClass {
    var $mailbox = 'blobby';
    var $host = 'example.ac.uk';
  },
  3 =>
  class stdClass {
    var $mailbox = 'ian';
    var $host = 'example.ac.uk';
    var $personal = 'ian,eiloart';
  },
  4 =>
  class stdClass {
    var $mailbox = 'foo';
    var $host = 'example.ac.uk';
    var $adl = '@example.com';
  },
  5 =>
  class stdClass {
    var $mailbox = 'foo';
    var $host = '#';
  },
  6 =>
  class stdClass {
    var $mailbox = 'ian';
    var $host = '-example.com';
  },
  7 =>
  class stdClass {
    var $mailbox = 'ian';
    var $host = 'one';
  },
  8 =>
  class stdClass {
    var $mailbox = 'UNEXPECTED_DATA_AFTER_ADDRESS';
    var $host = '.SYNTAX-ERROR.';
  },
)
up
0
Rainer Perske
19 years ago
Invalid addresses, if detected, set host to '.SYNTAX-ERROR.'; but not all invalid addresses get detected as such, e.g. <.@host.do.main> is considered
valid though a single dot is not a valid local part without using quotation marks.
To Top