PHP.mk документација

imap_headerinfo

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.imap-headerinfo.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.imap-headerinfo.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
imap_headerinfo

Референца за `function.imap-headerinfo.php` со подобрена типографија и навигација.

function.imap-headerinfo.php

imap_headerinfo

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

imap_headerinfoПрочитај го заглавието на пораката

= NULL

imap_headerinfo(
         IMAP\Connection $imap,
         int $message_num,
         int $from_length = 0,
         int $subject_length = 0
): stdClass|false

Добива информации за дадениот број на порака со читање на нејзините заглавија.

Параметри

imap

Еден IMAP\Connection instance.

message_num

Број на пораката

from_length

Број на знаци за fetchfrom својство. Мора да биде поголем или еднаков на нула.

subject_length

Број на знаци за fetchsubject својство Мора да биде поголем или еднаков на нула.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. false при грешка или, ако е успешно, информациите во објект со следниве својства:

  • toaddress - целосен ред до:, до 1024 знаци
  • to - низа од објекти од редот До:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • fromaddress - целосен ред од:, до 1024 знаци
  • from - низа од објекти од редот Од:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • ccaddress - целосен ред до копија:, до 1024 знаци
  • cc - низа од објекти од редот До копија:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • bccaddress - целосен ред скриена копија:, до 1024 знаци
  • bcc - низа од објекти од редот Скриена копија:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • reply_toaddress - целосен ред одговори на:, до 1024 знаци
  • reply_to - низа од објекти од редот Одговори на:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • senderaddress - целосен ред испраќач:, до 1024 знаци
  • sender - низа од објекти од редот Испраќач:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • return_pathaddress - целосен ред пат за враќање:, до 1024 знаци
  • вратен_пат - низа од објекти од редот Return-Path:, со следниве својства: personal, adl, mailboxПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во host
  • ремејл -
  • датум - Датумот на пораката како што е пронајден во нејзините заглавија
  • Датум - Исто како датум
  • предмет - Предметот на пораката
  • Предмет - Исто како предмет
  • во_одговор_на -
  • порака_id -
  • новости_групи -
  • следен_пат_до -
  • референци -
  • Неодамнешно - R ако е неодамнешно и видено, N ако е неодамнешно и невидено, ' ' ако не е неодамнешно.
  • Невидено - U ако не е видено И не е неодамнешно, ' ' ако е видено ИЛИ не е видено и е неодамнешно
  • Означено - F ако е означено, ' ' ако не е означено
  • Одговорено - A ако е одговорено, ' ' ако не е одговорено
  • Избришано - D ако е избришано, ' ' ако не е избришано
  • Нацрт - X ако е нацрт, ' ' ако не е нацрт
  • Msgno - Бројот на пораката
  • MailDate -
  • Големина - Големината на пораката
  • udate - датум на поштенска порака во Unix време
  • fetchfrom - линијата од форматирана за да одговара from_length characters
  • fetchsubject - линијата на темата форматирана за да одговара subject_length characters

Дневник на промени

Верзија = NULL
8.1.0 На imap параметарот очекува IMAP\Connection инстанца сега; претходно, валидна imap resource се очекуваше.
8.0.0 Неискористениот defaulthost параметар е отстранет.

Види Исто така

  • imap_fetch_overview() - Прочитајте преглед на информациите во заглавијата на дадената порака

Белешки од корисници 5 белешки

andyltm
пред 15 години
When I was testing imap_headerinfo() with an e-mail that had multiple recipients (multiple e-mails in to to: and/or cc: field), I noticed that imap_headerinfo() was failing hard for me on PHP 5.2.10-2ubuntu6.4 with Suhosin-Patch 0.9.7 (cli).

Rather than providing me an array with each and every e-mail address listed in the to and/or cc fields, it was only providing me the first listed.  This was disappointing.

   [to] => Array
        (   
            [0] => stdClass Object
                (   
                    [mailbox] => game
                    [host] => blunts.com
                )
        )

Luckily, there was a cool workaround to this problem:

imap_rfc822_parse_headers(imap_fetchheader( string ); which subsequentally worked like a nice little pet would:

   [to] => Array
        (   
            [0] => stdClass Object
                (   
                    [mailbox] => game
                    [host] => blunts.com
                )
            [1] => stdClass Object
                (   
                    [mailbox] => dutch
                    [host] => masters.com
                )
        )

TL;DR: 
So in other words, instead of imap_headerinfo() use imap_rfc822_parse_headers(imap_fetchheader()).

Hope this helps anyone else that runs into this issue from now into the future.  This post was suggested by people in #PHP on FreeNode IRC.
jahservant 13 на gmail точка com
пред 16 години
I'm not entirely sure why this is, but if you loop through all of the messages in a mailbox, calling imap_header() each time, you can significantly increase performance by calling imap_headers() first.

Compare this:
<?php
     $imap = imap_open("{my.server.com:143}INBOX", "user", "pass");
     $n_msgs = imap_num_msg($imap);
     $s = microtime(true);
     for ($i=0; $i<$n_msgs; $i++) {
          $header = imap_header($imap, $i);
     }
     $e = microtime(true);
     echo ($e - $s);
     imap_close($imap);
?>

With this:
<?php
     $imap = imap_open("{my.server.com:143}INBOX", "user", "pass");
     $n_msgs = imap_num_msg($imap);
  /****** adding this line: ******/
     imap_headers($imap)
  /***************************/
     $s = microtime(true);
     for ($i=0; $i<$n_msgs; $i++) {
          $header = imap_header($imap, $i);
     }
     $e = microtime(true);
     echo ($e - $s);
     imap_close($imap);
?>

The performance difference, as I have tested on several boxes, connecting to several different servers, is that the second code snippet ALWAYS takes 1/2 the time, if not less.

Perhaps it is because imap_headers() retrieves all of the messages on one connection, whereas imap_header() has to make a new fetch request for each message??  I'm not sure WHY it is faster if imap_headers() is called first, but I do know that it is, so I thought I'd pass on the knowledge.  If anyone knows why this is, please let me know....
php at our-software dot com
пред 9 години
Please Note : imap_headerinfo only returns a subset of the headers, rather than the entire thing.

Among other things, this means it only shows the first recipient from the "to" section of the email, rather than all recipients.

If you're not seeing something you expected to, you'll be better off using

$hdr_raw = imap_fetchheader($mbox, $mailid);
$hdr = imap_rfc822_parse_headers($hdr_raw);

then you'll see the full set of headers, and be able to do more with it.
scott at fuzzygroup dot com
пред 23 години
If you want to extract values from to, from, or other header elements, they are an object and you need to loop over them i.e.

$header = imap_header($mbox, $message_id);
$from = $header->from;
foreach ($from as $id => $object) {
    $fromname = $object->personal;
    $fromaddress = $object->mailbox . "@" . $object->host;
}

Would give you two variables for the friendly from and the smtp from address

Thanks to www.natrak.net for help with this
Murray
пред 10 години
An email without a subject line will not generate the 'subject' property.

Before using the 'subject' property you should test for it.
if (property_exists($header, 'subject')) echo $header->subject;
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.