Отправка писем при помощи PHP
Отправка писем при помощи PHP
Отправка писем при помощи PHP
Рано или поздно каждый владелец сайта сталкивается с необходимостью отправки писем непосредственно с сайта через скрипт, а не через почтовые программы. Это могут быть письма, отправляемые скриптом гостевой книги, сообщающее владельцу сайта что у него в гостевой появилось новое сообщение, или форумом, для оповещения о новом вопросе.
Во всех этих случаях необходима именно автоматическая отправка писем миную разнообразные почтовые программы и утилиты.Сделать это можно при помощи функции mail(), которую мы сейчас и будем изучать.
Синтаксис функции mail():
bool mail(string $to, string $subject, string $msg [, string $header]);
Функция mail() посылает письмо с темой $subject и содержанием $msg по адресу $to.
Если Вы хотите, чтобы письмо ушло по нескольким адресам, разделите их пробелами.
Само сообщение может быть многострочным. Для перехода на новую строку поставьте знак перехода на новую строку " " в конце каждой строки.
mail("name@mail.ru", "my subject", "stroka1nstroka2nstroka3");
Или тотже самое можно записать так:
mail("name@mail.ru", "my subject", "stroka1
stroka2
stroka3");
В четвертом необязательном параметре $header можно указать заголовки нашего сообщения.
Под заголовками я подразумеваю информацию, передаваемую вместе с письмом почтовому клиенту, которая будет содержать некоторые технические данные, такие как: кодировка письма, имя отправителя, обратный адрес отправителя и т.д. Это схоже с использованием тега <META> в HTML.
Чтобы было более понятно, что из себя представляют заголовки, и где они находятся в письме, откройте почтовый клиент и посмотрите на любое письмо в том виде, как оно пришло (Для Outlook это можно сделать нажав правой клавишей мыши на сообщение-Свойства-Подробно-Исходное сообщение).
Как мы видим, письмо представляет простой текстовой файл, состоящий из двух общих разделов:Вверху идут заголовки письма, затем через две строки идет само письмо.
Заголовков письма достаточно много, но не все они используются при написании скрипта отправки почты.
Вот некоторые наиболее часто используемые:
Я не зря выше привел пример отправки письма со словами латинского алфавита. Их любой почтовый клиент прочтет без труда. Но вот с русским алфавитом труднее. Русских кодировок существует огромное множество. И от того, насколько умело Вы перекодируете письмо, будет зависеть прочтет ли получатель его, или не будет возиться с установкой нужной кодировки и просто удалит его в корзину.
Кодировку письма задает заголовок Content-type:
$header="From: "Evgen" <evgen@mail.ru>";
$header.="Content-type: text/plain; charset="windows-1251"";
$subject="Тема письма";
$msg="Сторака 1nСтрока 2nСтрока 3";
mail("name@mail.ru", $subject, $msg, $header);
В заголовке мы указали, что тип письма будет простой текст, а кодировка - Windows.
Теперь наше письмо придет в понятной для почтового клиента кодировке.
Но стоит отметить, что в некоторых случаях в правильной кодировке будет отображено только само письмо. Заголовок же так и останется нечитаемым. Связано это с тем, где расположен заголовок Content-type относительно заголовка Subject, который и содержит тему письма. Дело в том, что существуют почтовые программы, которые понимают заголовок Content-type, но не понимают русский текст в поле Subject, если это поле стоит до Content-type. В то же время, другие почтовые программы обязывают нас задавать Content-type последним заголовком в списке. Чтобы обойти эти препятствия, можно разместить поле Content-type сразу в начале и в конце списка заголовков:
$subject="Тема письма";
$header="Content-type: text/plain; charset="windows-1251"";
$header.="From: Evgen <evgen@mail.ru>";
$header.="Subject: $subject";
$header.="Content-type: text/plain; charset="windows-1251"";
$msg="Сторака 1nСтрока 2nСтрока 3";
mail("name@mail.ru", $subject, $msg, $header);
Теперь это письмо прочтет любая почтовая программа!
Для отправки письма в HTML-виде достаточно в заголовке Content-type указать тип документа не text/plain (простой текст), а text/html (html-текст).
А само письмо записать в html-виде:
$subject="Тема письма";
$header="Content-type: text/html; charset="windows-1251"";
$header.="From: Evgen <evgen@mail.ru>";
$header.="Subject: $subject";
$header.="Content-type: text/html; charset="windows-1251"";
$msg="<body>
<li>Сторака 1
<li>Сторака 2
<li>Сторака 3
</body>";
mail("name@mail.ru", $subject, $msg, $header);
Смотреть также
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Атрибуты писем.
Атрибуты писем. Помимо указанных выше полей, заполняемых вручную или автоматически, используется также поле атрибутов письма. Hетмайл-письмо может иметь следующие атрибуты :Hазвание Сокращение ЗначениеPrivate Pvt Частное письмо. Если Вы пишете пользователю BBS, получающему
Специальные виды писем.
Специальные виды писем. Помимо рассмотренных выше обычных и аттачевых писем, существуют еще и другие письма, называемые обычно файловыми запросами (файл-реквестами, фреками filerequest, FREQ) и запросами на обновление (апдейт-реквест, update-request, UpdREQ).Существуют несколько типов
Отправка и получение писем
Отправка и получение писем Ящик зарегистрирован, самое время начать им пользоваться и написать первое письмо.Думая, кому написать первое письмо, не нужно теряться в догадках, вспоминая адреса почтовых ящиков друзей и знакомых. На тему адресата письма можно задуматься,
Ретрансляция писем
Ретрансляция писем Наиболее сложные действия по настройке почтового сервера выполняются в том случае, когда необходимо сконфигурировать его для передачи сообщений в режиме ретранслятора. Кроме того, в этом случае может возникнуть угроза безопасности системы. В режиме
5.4.3. Отправка зашифрованных писем. Цифровая подпись сообщений
5.4.3. Отправка зашифрованных писем. Цифровая подпись сообщений Теперь научимся отправлять подписанные сообщения. Создайте новое сообщение. Из меню Криптография и безопасность (рис. 5.22) выберите команду Авто – OpenPGP, затем команду Авто – S/MIME для отключения системы
Отправка бумажных писем и телеграмм через Интернет
Отправка бумажных писем и телеграмм через Интернет В Интернете есть бесплатный и очень интересный ресурс, на котором можно заказать отправку обычных, бумажных писем и телеграмм, а также факсов, телексов и СМС-сообщений. Он находится по адресу www.napishi.ru (рис. 7.14). Рис.
Сортировка писем вручную
Сортировка писем вручную Если спама в ящике немного, его можно удалять вручную, первоначально загружая только заголовки писем, а затем отбирая нужные сообщения. Так, в почтовом клиенте The Bat! для загрузки заголовков выполните команду меню Ящик ? Диспетчер писем ? Только для
Отправка и получение писем
Отправка и получение писем Ящик зарегистрирован – самое время начать им пользоваться и написать первое письмо.Думая, кому написать первое письмо, не нужно теряться в догадках, вспоминая адреса почтовых ящиков друзей и знакомых. На тему адресата письма можно задуматься,
Расширенное оформление писем
Расширенное оформление писем Согласитесь, гораздо приятнее читать красиво оформленное письмо, чем просто неформатированный текст. Вернемся к программе Outlook Express и посмотрим, какие возможности расширенного оформления она предоставляет пользователю.Outlook Express позволяет
Проверка писем в GMail
Проверка писем в GMail Начнем с программ, ориентированных на работу только с Gmail. К сожалению, Google Talk и Gmail Notifier, предлагаемые разработчиками этого почтового сервиса, работают только под Windows, поэтому за дело взялись сторонние программисты. KCheckGMail (http://kcheckgmail.sourceforge.net/) – это
Оформление писем
Оформление писем Удобно пользоваться возможностями Word для автоматизации рутинных операций – интеллектуальной обработки текстов. Например, для выполнения массовых рассылок – писем, извещений, счетов или поздравительных открыток. Вручную можно перепечатать, исправляя
17.4.5. Пересылка писем
17.4.5. Пересылка писем Вам пришло письмо, которое вы решили показать вашим друзьям. Например, это рассылка с анекдотами, и вы хотите, чтобы у них тоже поднялось настроение. Для пересылки письма выделите его и нажмите кнопку Переслать на панели инструментов. Вам нужно ввести
Получение, создание и отправка писем
Получение, создание и отправка писем Чтобы написать письмо в Outlook Express, нужно нажать кнопку Создать сообщение на панели инструментов. Откроется чистый бланк письма, который нужно будет заполнить. Чистый бланк письма, который вы будете заполнятьПоле От заполняется