boolean mail(string recipient, string subject, string body, string headers, string parameters)
Функция mail (листинг 10.9) предназначена для отправки электронной почты. На платформе Unix для этого используется команда оболочки sendmail. На платформе Windows функция создает соединение с сервером SMTP. Почта отравляется по адресу, указанному в аргументе recipient.
Эта функция позволяет указывать сразу несколько адресатов, разделяя их запятыми. Необходимо также задавать тему и тело сообщения. В необязательном четвертом аргументе можно задавать дополнительные заголовки. Заголовки отделяются один от другого символами возврата каретки (r) и новой строки (n). Пятый аргумент передается команде sendmail в том случае, когда PHP работает под управлением Unix. Если почта была успешно оправлена, то она возвращает значение TRUE. На платформе Windows в сообщение автоматически добавляются заголовки Date: и From:, если они не были указаны первоначально. Для настройки этой функции в конфигурационном файле php.ini имеется несколько директив. Для Windows с помощью директивы SMTP задается имя узла SMTP, кроме того, с помощью директивы sendmail_from можно указать стандартное значение заголовка From:. Допустимо указывать адрес SMTP-сервера как localhost. Для Unix можно задавать путь к программе sendmail, который уже, возможно, скомпилирован по умолчанию. На платформе Unix PHP не может отправлять почту непосредственно на удаленный узел SMTP. Программу sendmail можно настроить таким образом, чтобы она отправляла почту на определенный узел, но эта тема уже выходит за рамки настоящей книги. Пример отсылки вложений приводится в главе 24, "Сети". 

Листинг 10.9. Функция mail

<?php
// определить получателя почты
//(в данном случае это пользователь root на localhost) $mailTo = "Admin <{$_SERVER["SERVER_ADMIN"]}>"; //Задать тему
$mailSubject = " Проверка почты"; // создать тело сообщения
$mailBody = "Это проверка функционирования почты PHP. "; $mailBody .= " Письмо сгенерировано с помощью PHP- версии "; $mailBody .= phpversion(); // добавить из заголовка $mailHeaders = "From: PHP Script".
"<php@{$_SERVER["SERVER_NAME"]}>rn";
// отправить почту
if(mail($mailTo, $mailSubject, $mailBody, $mailHeaders))
{
print(" Почта отправлена успешно.");
}
else
{
print(" Почта не отправлена!");
}

integer pfsockopen(string hostname, integer port, integer error_number, string error_description, double timeout)
Функция pfsockopen работает аналогично функции fsockopen, но соединение при этом кэшируется. Соединения, открытые с помощью функции pfsockopen, не за­крываются по завершении работы сценария. Они являются процессом сервера.