The Mail_IMAP::$header property is available by calling on Mail_IMAP::getHeaders. It provides information from the message headers of a multipart message. The available headers vary depending on whether the headers are from the message itself or from a message attached to that message. The information from the headers are set up in a multidimensional array.
Like other Mail_IMAP properties, the first level of nesting in this property's array is offset by message number. For instance, the subject of a message is available as $header[$mid]['subject'], where $mid is the message id. Addresses are split into an additional sub-nesting offset by the address count. For example, $header[$mid]['to'][$n], $n refers to the address count.
The information available in the Mail_IMAP::$header property may vary from message to message and from server to server. The raw message headers are kept in the Mail_IMAP::$header under the 'raw' indice as Mail_IMAP::$header[$mid]['raw']. This indice is only available when calling on Mail_IMAP::getRawHeaders with the $rtn argument set to FALSE.
Note: The contents of the Mail_IMAP::$header property can be retrieved by calling on Mail_IMAP::getHeaders with the $rtn argument set to TRUE.
The possible indices of the Mail_IMAP::$header property are outlined in the following table. Most of the following was taken directly from the PHP documentation for imap_headerinfo. The only major differences are; Mail_IMAP makes additional indices available such as complete addresses, instead of the addresses being broken down by mailbox and host, and Mail_IMAP attempts to always provide a UNIX timestamp in the udate indice regardless of whether the message headers are provided by imap_headerinfo or imap_rfc822_parse_headers (the latter is used to parse headers of attached messages and provides less information than the former).
| Associative Indice | Data type | Purpose |
|---|---|---|
| Subject | ||
|
subject Subject |
str | The message subject line. |
| fetchsubject | str |
Contains the subject line formatted to fit the length specified in $subject_length (1024 characters by default).
$subject_length refers to an optional argument for imap_headerinfo, which can be specified in the $args argument of Mail_IMAP::getHeaders |
| Date | ||
|
date Date |
str | Pre-formated date string. |
| udate | int | The date the message was received in Unix time. See the date function. |
| Miscellaneous | ||
| in_reply_to | str | Information from the 'In reply to' line, if any. |
| message_id | int | The message id. |
| newsgroups | str | Information from the 'Newsgroups' line, if any. |
| followup_to | str | Information from the 'Follow up to' line, if any. |
| references | str | Information from the 'References' line, if any. |
| Flags | ||
| Recent | str | Recent flag.** ('R' for recentand seen, 'N' if recent and not seen, '' if not recent) |
| Unseen | str | Unseen flag.** ('U' if not seen and not recent, '' if seen or not seen and recent) |
| Answered | str | Answered flag.** ('A' if answered, '' if not answered) |
| Deleted | str | Deleted flag.** ('D' if deleted, '' if not deleted) |
| Draft | str | Draft flag.** ('X' if draft, '' if not draft) |
| Flagged | str | Flagged flag.** ('F' if flagged, '' if not flagged) |
|
Note: Recent/Unseen behavior is a little odd. If you want to
know if a message is Unseen, you must check for: Unseen == 'U' || Recent == 'N' ** POP3 Mailboxes don't remember flag settings between connections. |
||
| Addresses | ||
| fromaddress | str | Full 'from' line (up to 1024 characters). |
| fetchfrom | str | Full 'from' line formatted to fit $from_length. |
| from | str | Individual complete 'from' address(es). |
| from_personal | str | Individual 'from' personal information. |
| from_mailbox | str | Individual 'from' mailbox(es). |
| from_host | str | Individual 'from' host(s). |
| senderaddress | str | Full 'sender' line (up to 1024 characters). |
| sender | str | Individual complete 'sender' address(es). |
| sender_personal | str | Individual 'sender' personal information. |
| sender_mailbox | str | Individual 'sender' mailbox(es). |
| sender_host | str | Individual 'sender' host(s). |
| reply_toaddress | str | Full 'reply to' line (up to 1024 characters). |
| reply_to | str | Individual complete 'reply to' address(es). |
| reply_to_personal | str | Individual 'reply to' personal information. |
| reply_to_mailbox | str | Individual 'reply to' mailbox(es). |
| reply_to_host | str | Individual 'reply to' host(s). |
| return_path | str | Full 'return path' line (up to 1024 characters). |
| toaddress | str | Full 'to' line (up to 1024 characters). |
| to | str | Individual 'to' addresses. |
| to_personal | str | Individual 'to' personal information. |
| to_mailbox | str | Individual 'to' mailbox(es). |
| to_host | str | Individual 'to' host(s). |
| ccaddress | str | Full 'cc' line (up to 1024 characters). |
| cc | str | Individual 'cc' addresses. |
| cc_personal | str | Individual 'cc' personal information. |
| cc_mailbox | str | Individual 'cc' mailbox(es). |
| cc_host | str | Individual 'cc' host(s). |
| bccaddress | str | Full 'bcc' line (up to 1024 characters). |
| bcc | str | Individual 'bcc' addresses. |
| bcc_personal | str | Individual 'bcc' personal information. |
| bcc_mailbox | str | Individual 'bcc' mailbox(es). |
| bcc_host | str | Individual 'bcc' host(s). |