Почта является основным средством общения для миллионов пользователей интернета.Большинство пользователей интернета привыкли именно к этому виду общения,поэтому для успешной разработки сайтов необходимо владеть приемами отправки и получения почты через 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.
Таким образом,скрипт,выполняющий отправку почтового сообщения,может выглядеть так,как это представлено ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?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 могут выглядеть следующим образом:
1 2 3 4 5 |
<?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