Функция PHP mail()
Определение и использование
Функция mail() позволяет отправлять электронную почту напрямую из скрипта.
Если доставка почты успешно принята, возвращает true, в противном случае возвращает false.
Грамматика
mail(to,subject,message,headers,parameters)
Параметры | Описание |
---|---|
to | Обязателен. Определяет получателя письма. |
subject | Обязателен. Определяет тему письма. Этот параметр не должен содержать символов перевода строки. |
message | Обязателен. Определяет сообщение, которое нужно отправить. |
headers | Обязателен. Определяет дополнительные заголовки, такие как From, Cc и Bcc. |
parameters | Обязателен. Определяет дополнительные параметры программы sendmail. |
Объяснение
в message Параметры должны быть разделены LF (\n). Каждая строка не должна превышать 70 символов.
(В Windows) При прямом подключении PHP к SMTP-серверу, если в начале строки обнаружен точка, она будет удалена. Чтобы избежать этой проблемы, замените одиночную точку на двойную.
<?php $text = str_replace("\n.", "\n..", $text); ?>
Советы и комментарии
Комментарий:Запомните, что принятие почты не означает, что письмо достигло запланированного места.
Пример
Пример 1
Отправка простого письма:
<?php $txt = "First line of text\nSecond line of text"; // Если строка превышает 70 символов, используйте wordwrap(). $txt = wordwrap($txt,70); // Отправка письма mail("somebody@example.com","My subject",$txt); ?>
Пример 2
Отправка электронной почты с дополнительными заголовками:
<?php $to = "somebody@example.com"; $subject = "My subject"; $txt = "Hello world!"; $headers = "From: webmaster@example.com" . "\r\n" . "CC: somebodyelse@example.com"; mail($to,$subject,$txt,$headers); ?>
Пример 3
Отправка HTML-письма:
<?php $to = "somebody@example.com, somebodyelse@example.com"; $subject = "HTML-письмо"; $message = " <html> <head> <title>HTML-письмо</title> </head> <body> <p>Этот email содержит HTML-теги!</p> <table> <tr> <th>Имя</th> <th>Фамилия</th> </tr> <tr> <td>Bill</td> <td>Gates</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: <webmaster@example.com>' . "\r\n"; $headers .= 'Cc: myboss@example.com' . "\r\n"; mail($to,$subject,$message,$headers); ?>