boolean imap_mail(string to, string subject, string message, string headers, string cc, string bcc, string return_path)
Функция imap_mail является альтернативой функции mail. Необязательные аргументы cc и bcc могут содержать список адресов, разделенных запятыми. Аргумент return_path задает заголовок Return-Path.
string imap_mail_compose(array envelope, array body)
Функция imap_mail_compose (листинг 19.9) возвращает сообщение MIME для заданных массивов с описанием конверта и тела сообщения. Аргумент envelope может содержать следующие элементы: bcc, cc, custom_headers, date, from, in_reply_to, message_id, remail, reply_to, return_path, subject и to. Аргумент body может содержать следующие элементы: bytes, charset, contents.data, description, disposition, disposition.type, encoding, id,lines,md5, subtype, type и type.parameters.
Для отправки полученного сообщения необходимо передать вывод этой функции на аргумент headers функции imap_mail или mail. При этом необходимо помнить, что этими функциями задаются значения заголовков To и Subject. Их включение в конверт MIME может привести к дублированию заголовков. Это сообщение можно также переслать в сообщении off на такой внешний процесс, как sendmail. 
j Листинг 19.9. Функция imap_mail_compose_
<?php
//собрать конверт $envelope = array(
,from,=>,leon@example.com',
'return_path'=>'leon@example.com'
);
//прикрепить эмблему
$logo = file_get_contents("/image/logo.gif"),-//собрать тело сообщения
$body = array(
//первой частью должна быть multipart/mixed array(
'type'=>TYPEMULTIPART,
,subtype'=>,mixed'
),
// добавить сообщение array(
'type'=>TYPETEXT, ,subtype,=>,plain',
,contents.data,=>"Вот письмо тебе". ),
// добавить изображение array(
'type'=>TYPEIMAGE,
,subtype,=>,gif',
'encoding'=>ENCBASE64,
'contents.data'=>chunk_split(base64_encode($logo)), ,description,=>,logo.gif
)
);
//собрать заголовки MIME
$mime = imap_mail_compose($envelope, $body); // отобразить полученное письмо print(nl2br($mime)); // отправить сообщение
imap_mail('leon@example.com', 'MIME Test', '', $mime);
?>

boolean imap_mail_copy(resource imap, string list, string mailbox, integer flags)
Функция imap_mail_copy (листинг 19.10) копирует сообщения в другой почтовый ящик. Список сообщений, заданный аргументом list, может представлять собой список или диапазон сообщений. Если задан список сообщений, то сообщения в нем отделяются запятыми. При задании диапазона начальный номер отделяется от конечного двоеточием. Для указания последнего сообщения в почтовом ящике можно воспользоваться звездочкой.
Необязательный аргумент flags представляет собой битовое поле, в котором может быть задано значение CP_UID, определяющее, что список содержит идентификаторы пользователей или CP_MOVE, что дает функции команду удалять первоначальные сообщения после их копирования. Последняя возможность может быть реализована с помощью функции imap_mail_move. 
Листинг 19.10. Функция imap_mail_copy

<?php
//удалить сообщения 1-10
$imap = imap_open("{mail.example.com}INBOX", "leon",

"password");
imap_mail_copy($imap, "INBOX.php", "1:10"); imap_close($imap);
?>

boolean imap_mail_move(resource imap, string list, string mailbox, integer flags)
Функция imap_mail_move переносит сообщения из текущего почтового ящика в новый почтовый ящик. Исходные сообщения помечаются для удаления. Этот список может представлять собой список или диапазон сообщений. Если задан список сообщений, то сообщения в нем разделяются запятыми. При задании диапазона начальный номер отделяется от конечного двоеточием. Для указания последнего сообщения в почтовом ящике можно воспользоваться звездочкой. Необязательный аргумент flags представляет собой битовое поле, в котором может быть задано значение CP_UID.
object imap_mailboxmsginfo(resource imap)
Функция imap_mailboxmsginfo возвращает информацию о текущем почтовом ящике. Объект имеет свойства, приведенные в табл. 19.7.

Таблица 19.7. Свойства imapmailboxmsginfo

Date Recent
Driver Size
Mailbox Unread
Nmsgs Recent

array imap_mime_header_decode(string text)
Документ RFC 2047 определяет метод кодировки заголовков MIME с использованием кодировок, отличных от ASCII. Данная функция декодирует эти заголовки в массив объектов, содержащий два элемента: charset и text. Блоки декодированного текста тоже в свою очередь являются объектами массива.
integer imap_msgno(resource imap, integer uid)
Функция imap_msgno возвращает номер сообщения на основании идентификатора пользователя. Для того чтобы по номеру сообщения получить идентификатор пользоваться, необходимо воспользоваться функцией imap_uid. 
integer imap_num_msg(resource imap)
Функция imap_num_msg возвращает количество сообщений в текущем почтовом ящике.
integer imap_num_recent(resource imap)
Функция imap_num_recent возвращает количество последних сообщений в почтовом ящике.