A PHP Error was encountered

Severity: 8192

Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

Filename: mysql/mysql_driver.php

Line Number: 303

Отправка e-mail в русской кодировке средствами PHP

Отправка e-mail в русской кодировке средствами PHP

Автор: Mowshon.
Опубликовано 23 июля 2011
в рубрике PHP, Примеры

Просмотров: 7188.
Подписаться на комментарии по RSS.

Почта является основным средством общения для миллионов пользователей интернета.Большинство пользователей интернета привыкли именно к этому виду общения,поэтому для успешной разработки сайтов необходимо владеть приемами отправки и получения почты через PHP.

Отправка e-mail в русской кодировке средствами 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

Оставьте комментарий!

Гость
Комментатор / хотите им стать

Чтобы стать комментатором введите email и пароль. Напишите комментарий. В дальшейшем ваша связка email-пароль, позволит вам комментировать и редактировать свои данные. Не забудьте про активацию (инструкция придет на ящик, указанный при регистрации).

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)