 |
(PHP 3, PHP 4) mail
- отправляет почту. Описание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. Могут помочь и следующие RFC-документы: RFC
1896, RFC 2045,
RFC 2046, RFC
2047, RFC 2048
и RFC 2049. 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\nLine 2\nLine 3"); |
|
Если
передаётся четвёртый строковой аргумент, эта строка вставляется в конце шапки/header.
Обычно это используют для добавления дополнительных шапок. Несколько дополнительных
шапок разделяются символами carriage return и newline. Примечание:
вы обязаны использовать \r\n для разделения шапок, хотя некоторые
почтовые агенты Unix могут работать с одиночными символами newline (\n).
Пример 2. отправка посты с дополнительными шапками/header.
mail("nobody@example.com", "the subject", $message, "From: webmaster@$SERVER_NAME\r\n"
."Reply-To: webmaster@$SERVER_NAME\r\n" ."X-Mailer: PHP/" . phpversion()); |
|
Параметр
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\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; /* дополнительные
шапки */ $headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n"; $headers .= "Bcc: birthdaycheck@example.com\r\n";
/* и теперь отправим из */ mail($to, $subject, $message, $headers); |
|
Примечание:
убедитесь, что у вас нет символов newline в to или в subject,
иначе почта может не отправиться корректно.
|  |