Отправка e-mail в русской кодировке средствами PHP
Просмотров: 10588.
Подписаться на комментарии по RSS.
Почта является основным средством общения для миллионов пользователей интернета.Большинство пользователей интернета привыкли именно к этому виду общения,поэтому для успешной разработки сайтов необходимо владеть приемами отправки и получения почты через 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
Еще записи по теме
- PHP Манипулирование файлами
- Установка живой капчи KeyCaptcha
- [Решено!] Ошибка: Call to undefined function: curl_init() или нерабочий cURL
- Сохранить изображения из интернета - PHP
- PHP функции для работы с массивами
- Кэширование данных в PHP - ускоряем просмотр страниц
- Загрузка файла на сервер с проверками для безопасной загрузки - PHP
Последние комментарии
Напишу скрипт бесплатно
Сортировка массивов по возрастанию и убыванию в PHP