Отправка email посредством PHP

Отправка email посредством PHP

В последние полгода я рьяно взялся за изучение PHP. Как-то давно я скачал себе книжку и читал ее в свободное время. Знаний от этой книги получил ровно ноль. Сейчас в течение полугода я делаю сайт автомобильных объявлений, практически на чистом PHP.

Сегодня решился на написание скрипта, отвечающего за отправку e-mail сообщений с сайта. Оказывается, что в PHP – это делается очень просто.

Как отправляются письма через PHP?

Для начала хотелось бы пояснить, что PHP не способен отсылать письма самостоятельно. В PHP есть функция, которая работает с почтовыми серверами.

Большинство современных платных хостингов, даже самых дешевых, имеют в своем наборе такой сервер. Чаще всего это sendmail. Вам только остается отослать запрос на отправку и sendmail это сделает.

Еще бы хостинги делали бы бесплатно продвижение сайтов, было бы вообще красота.

PHP-код отправки email`ов

За отправку e-mail в PHP отвечает всего одна функция mail();, которая имеет синтаксис:

mail (куда слать, тема сообщений, сообщение, доп. информация);

Лучшим объяснением считается пример, поэтому чтобы избежать лишней воды и сразу объяснить все как есть, пример:


$email = 'mail@mail.ru';
$subject = 'Тема письма';
$message = 'Поздравляем, Вы только что получили письмо.\n
Это письмо отправлено средствами PHP';
$headers = 'From: adminwa.ru <neotve4at@adminway.ru>\r\n
Content-type: text/plain; charset=utf-8\r\n';
mail ($email, $subject, $message, $headers);

А теперь немного комментариев к приведенному куску кода.

В $email нужно указать адрес получателя вашего сообщения, если их несколько, то через запятую. Только учтите, что каждый, кто получил ваше письмо увидит всех получателей.

$subject должен быть не более 255 символов. Это не ограничение PHP, а стандарт электронных писем.

Переносы строки в $subject и $message осуществляются специальным символом(выражением) – \n

В $headers можно описать дополнительные параметры From – от кого мейл, Content-type – формат письма (можно указать text/plain – обычный текст или text/html – html-разметка), charset – кодировка письма и несколько других.

Все строки в $headers должны быть отделены \r\n.

Вот в принципе и все хитрости. Есть еще конечно несколько дополнительных параметров, как дополнительный email-адрес и другие, но они не всем нужны, а если и понадобятся, то можно легко найти эту информацию в Интернете.

Комментарии:

  1. myr4ik07 опубликовал комментарий 6 Февраль 2012, 13:37 #

    Какие ресурсы посещаете для изучения?

    | Ответить
    • Admin опубликовал комментарий 18 Февраль 2012, 22:30 #

      myr4ik07: Какие ресурсы посещаете для изучения?

      Google ))

      | Ответить
  2. роман опубликовал комментарий 18 Февраль 2012, 12:18 #

    спасибо интересно посмотреть.

    | Ответить
  3. Andrew опубликовал комментарий 24 Июнь 2012, 02:07 #

    Спасибо за скрипт очень полезный. Только не разберусь. Создал форму, через форму методом post перекидываю данные в этот скрипт. Отправляю письмо. На почту приходит оно. Но что удивительно, пишу на русском, в почте тема читается отлично, а вот само сообщение все в кракозябрах. Пытался перевести в utf-8 без bom результат тот же. Не подскажите, что делать?

    | Ответить
    • Mut@NT опубликовал комментарий 26 Июнь 2012, 09:55 #

      А в $headers вы указываете кодировку?
      Если да, тона вашем месте, я бы попытался вывести на экран текст, который идет через POST.
      Проще сделать, чтобы форма сама на себя отправляла и если значение переменных POST отличается от нуля, делать проверку и отправлять письмо.

      | Ответить
  4. Евгений опубликовал комментарий 19 Ноябрь 2012, 03:39 #

    почему $subject не добавляет тему в письмо?

    | Ответить
Имя
e-mail
Сайт
Текст комментария: