Свежие комментарии

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

    Почта является основным средством общения для миллионов пользователей интернета.Большинство пользователей интернета привыкли именно к этому виду общения,поэтому для успешной разработки сайтов необходимо владеть приемами отправки и получения почты через 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-Rrn

    Для отправки почтового сообщения в кодировке 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-Rrn";
    if(mail($to, $subject, $message, $headers))
    {echo "Письмо успешно отправлено";}
     else
    {echo "Произошла ошибка - письмо не отправлено";}
    ?>

    При получении письма в качестве отправителя будет подставлен адрес сервера.Для того чтобы избежать этого,в качестве обратного адреса можно назначить произвольный адрес при помощи почтового заголовка From:

    From: name

    Вместо name указывается имя,которое будет отображаться клиентским почтовым агентом как имя отправителя,а e-mail содержит обратный почтовый адрес.Так,строки формирования переменной $headers могут выглядеть следующим образом:

    <?php
    $headers = "Content-Type: text/html; charset=KOI8-Rrn";
    $headers .="From: server <someone@live-code.ru>rnrn";
    ?>
    </someone@live-code.ru>

    При отправке электронного письма,снабженного почтовыми заголовками,которые были представлены выше,будут представлены как письмо от пользователя server с электронным адресом someone@live-code.ru

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