bool mail (string to, string subject, string message [, string additional_headers [, string additional_parameters]])
mail() автоматически отправляет сообщение message получателю to. Можно специфицировать несколько получателей, разделив запятой адреса в
to. С помощью этой функции можно высылать Email с присоединением/attachment и
содержимое специальных типов. Это делается через MIME-кодировку - см. дополнительно эту
статью о Zend
или PEAR Mime Classes.
mail() возвращает TRUE, если почта была успешно принята для доставки, FALSE в ином случае.
Предупреждение!
Windows-реализация mail() во многом отличается от Unix-реализации. Во-первых, она не использует
локальный экзешник для составления сообщений, а работает лишь по прямым сокетам, что означает, что
MTA должен прослушивать сетевой сокет (который может находиться на локальной или
удалённой машине). Во-вторых, специальные шапки/headers вроде From:, Cc:,
Bcc: и Date:не интерпретируются MTA, а разбираются в PHP. PHP < 4.3 поддерживал только header-элемент Cc: (и был чувствительным к регистру). PHP >= 4.3 поддерживает все элементы шапки и нечувствителен к регистру символов.
Пример 1. Отправка почты.
mail("joecool@example.com", "My Subject", "Line 1
Line 2
Line 3");
Если передаётся четвёртый строковой аргумент, эта строка вставляется в
конце шапки/header. Обычно это используют для добавления дополнительных
шапок. Несколько дополнительных шапок разделяются символами carriage return и newline.
Примечание: вы обязаны использовать для разделения шапок, хотя некоторые почтовые агенты Unix могут работать с
одиночными символами newline ().
Пример 2. отправка посты с дополнительными шапками/header.
Параметр additional_parameters можно использовать для передачи дополнительных параметров программе,
сконфигурированной для использования при отправке почты установкой конфигурации sendmail_path. Например, это можно применять для установки адреса отправителя при
использовании sendmail. Вам может понадобиться добавить пользователя под
которым работает ваш web-сервер, в вашу sendmail-конфигурацию для
предотвращения добавления шапки ’X-Warning!’ к сообщению, когда вы
устанавливаете отправителя с использованием этого метода.
Пример 3. Отправка почты с дополнительными шапками/headers и установка
дополнительного параметра командной строки.
mail("nobody@example.com", "the subject", $message,
"From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");
Примечание: этот пятый параметр был введён в PHP 4.0.5.
Вы можете также использовать простую технику построения строк для создания сложных
email-сообщений.
Пример 4. Отправка сложной email.
/* получатели */
$to = "Mary <mary@example.com>" . ", " ; //обратите внимание на запятую
$to .= "Kelly <kelly@example.com>";
/* темаsubject */
$subject = "Birthday Reminders for August";
/* сообщение */
$message = ’
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
’;
/* Для отправки HTML-почты вы можете установить шапку Content-type. */
$headers = "MIME-Version: 1.0
";
$headers .= "Content-type: text/html; charset=iso-8859-1
";
/* дополнительные шапки */
$headers .= "From: Birthday Reminder <birthday@example.com>
";
$headers .= "Cc: birthdayarchive@example.com
";
$headers .= "Bcc: birthdaycheck@example.com
";
/* и теперь отправим из */
mail($to, $subject, $message, $headers);
Примечание: убедитесь, что у вас нет символов newline в to или в subject,
иначе почта может не отправиться корректно.