Почта является основным средством общения для миллионов пользователей
интернета.Большинство пользователей интернета привыкли именно к этому
виду общения,поэтому для успешной разработки сайтов необходимо владеть
приемами отправки и получения почты через PHP.
Отправка почты средствами PHP осуществляется при помощи функции mail(),которая имеет следующий синтаксис:
mail($to, $subject, $body [, $headers] [. $parameters])
Эта функция принимает следующие аргументы:
- $to - адрес электронной почты получателся;
- $subject - тема сообщении;
- $message - текс сообщении;
- $headers - дополнительные заголовки,которые можно задать в сообщении;
- $parameters - дополнительные параметры,которые можно задать в сообщении.
Если не указывается четвертый параметр $headers,письмо не снабжается
никакими дополнительными почтовыми заголовками.Однако очень часто
требуется изменить формат письма с обычного текст (text/plain) на
HTML-формат(text/html) или указать кодировку сообщения.
Установка формата письма и его кодировки осуществляются при помощи почтовых заголовков Content-Type и charset соответственно.
Content-Type: text/html; charset=KOI8-R\r\n
Для отправки почтового сообщения в кодировке cp1251 вместо KOI8-R следует прописать windows-1251.
Таким образом,скрипт,выполняющий отправку почтового сообщения,может выглядеть так,как это представлено ниже.
<?php
$theme = "Статистика сайта";
$theme = convert_cyr_string($theme, 'w', 'k');
$message = "
Письмо отправлено - ".date("d.m.Y H:i:s")."
Размер скрипта отправителя - ".filesize($_SERVER['PHP_SELF'])."
";
$message = convert_cyr_string($message, 'w', 'k');
$headers = "Content-Type: text/html; charset=KOI8-R\r\n";
if(mail($to, $subject, $message, $headers))
{echo "Письмо успешно отправлено";}
else
{echo "Произошла ошибка - письмо не отправлено";}
?>
При получении письма в качестве отправителя будет подставлен адрес сервера.Для того чтобы избежать этого,в качестве обратного адреса можно назначить произвольный адрес при помощи почтового заголовка From:
From: name
Вместо name указывается имя,которое будет отображаться клиентским
почтовым агентом как имя отправителя,а e-mail содержит обратный почтовый
адрес.Так,строки формирования переменной $headers могут выглядеть
следующим образом:
<?php
$headers = "Content-Type: text/html; charset=KOI8-R\r\n";
$headers .="From: server <someone@live-code.ru>\r\n\r\n";
?>
</someone@live-code.ru>
При отправке электронного письма,снабженного почтовыми заголовками,которые были представлены выше,будут представлены как письмо от пользователя server с электронным адресом someone@live-code.ru
Источник: http://live-code.ru |