Функция 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);
?>