Самостоятельное создание сайта
Самостоятельная раскрутка и продвижение сайта

Отправка почты на PHP

   В процессе работы на web-проектом рано или поздно встает вопрос, как сделать свой сайт более мобильным, чтобы мгновенно реагировать на все события происходящие на сайте (получение почты, добавление комментария/сообщения).
   Это можно реализовать с помощью автоматической отправки письма на почтовый ящик.
   Некоторые почтовые сервисы даже предоставляют услуги по отправке SMS на мобильный телефон, уведомляя про получение письма.
   Таким образом, Вы всегда будете оперативно получать информацию про все события на Вашем сайте.

   Отправить письмо на почтовый ящик с помощью php можно использовав функцию "mail", например:

<?php

$message = '
<html>
<head></head>
<body>На сайте info-pages.com.ua на страничке <a href="http://info-pages.com.ua/e/13">http://info-pages.com.ua/e/13</a> добавлен новый комментарий такого содержания: "Здесь был Коля".
Почтовый ящик автора:"коля@ящик".
<br>
<form name="forma" method="post" action="http://info-pages.com.ua/index.php">
<input type=submit value="Удалить комментарий">
</form>
<br>
IP-адрес пользователя: 192.168.15
<form name="forma" method="post" action="http://info-pages.com.ua/index.php">
<input type=submit value="Блокировать IP-адрес">
</form> <br>
Referer пользователя: http://info-pages.com.ua/e/12
</body>
</html>';

$header = "From: info-pages.com.ua <webmaster@info-pages.com.ua> Content-Type: text/html; charset=windows-1251";

@ mail("semen@mail.ru", "info-pages.com.ua ", $message, $header);

?>

   Давайте разберем, как происходит отправка:
   1. сервер выполняет функцию mail с заданными параметрами;
   2. конструкция функции mail состоит:

@ (символ собаки означает не уведомлять про ошибки при отправке если таковые появятся)
mail(
"semen@mail.ru" (почтовый ящик на который мы отсылаем письмо),
"info-pages.com.ua " (название письма),
$message (заголовок который мы отсылаем почтовому сервису, здесь мы указываем формат письма (text/html) и кодировку (windows-1251)),
$header (текст письма написаный в html коде)
);

   Web-программисты создают свои проекты, как правило, на локальном сервере, но для использования функции mail на локальном сервере Вы должны установить программу для приема почты.
   Дело в том, что функция mail сама по себе почту не отправляет, она просто вызывает программу sendmail, которая в дистрибутив web-сервера Apache не входит. В данном случае я предлагаю Вам поступить таким образом, установить отправку писем на локальный хост и с помощью специальной программы их получать.
   Поэтому, для организации отправки и получения почты на локальном сервере делаем следующее:

   1. проверяем наличие в файле "php.ini" в блоке [mail function] следующих строк:

   SMTP = localhost
   smtp_port = 25

   Если отсутствуют или закомментированы значит добавляем или активируем.

   2. Устанавливаем программу для получения почты Test Mail Server Tool.
   Настройка программы Test Mail Server Tool не требует специальных указаний, просто распакуйте и запустите. Далее проверьте номер порта (должен быть 25) и укажите путь для хранения получаемой почты.

   Вот и все, теперь Вы можете полноценно отправлять и получать почтовые письма.

307
2.6 37
Рейтинг: +2.6 , голосов 37
Вы еще не голосовали!
Добавить комментарий (комментариев: 11)
Удалить ответ

Ваш почтовый ящик никогда не будет опубликован
Трудно разобрать цифры? Нажмите на рисунок, чтобы обновить.
#1 06/04/2012 03:04 zed212
reply
Приветствую всех!!! у меня вопрос к знатокам вот есть php скрипт для отправки писем: вопрос можно-ли в таких скриптах прикрепить не одну форму $From($headers) = адрес отправителя письма а ну к примеру таких форм сделать штук 7-8 чтоб к тому к кому ты отправляеш письмо оно пришло от множество почтовых ящиков.Если кто знает как сделать то отпишитесь можно ко мне на почту ynii@list.ru
#2 26/06/2011 16:06 Михаил
reply
Посмотрите сайт vedernikov'su там подробно написано как настроить sendmail для отправки сообщений в папку на компьютере
#3 26/03/2010 09:41 Иван
reply
Здравствуйте. Всё вроде сделал правильно, а письмо не приходит. Какие ещё могут быть причины?
#4 20/03/2010 10:46 pviktor
reply
Cпасибо за ответ! Дело в том, что я уже установил эту программу. Без нее вообще ничего не получалось... У меня XAMPP с Mercury Mail установлены.
#5 19/03/2010 22:58 pviktor
reply
У меня, если я с сайта (на локальном хосте), отправляю письмо, пишет, что письмо отправлено, но на "мыло" оно не приходит. Если отвечаешь, то пишет, что сервер SMTP не найден. Не подскажете - в чем может быть проблема? В php.ini все так, как Вы пишете. Спасибо!
20/03/2010 10:29 admin
с локального хоста отправить на почту в интернете у Вас не получится, используйте программу Test Mail Server Tool (ссылка в статье). Эта программа прослушивает порт 25 на локальном хосте и будет получать письма
#6 16/02/2010 21:12 Алекса
reply
Не удивляйтесь вопросу, я чайник в этих делах. Скажите, а где находится файл php.ini? Спасибо.
17/02/2010 08:37 admin
файл php.ini находится в корне папки с распакованым/установленым php
#7 26/11/2009 23:39 АННА
reply
Здравствуйте. А почему почта остается в папке usr/local/!sendmail!? Мне нужно, чтобы почта отправлялась по интету на почту Спасибо
03/12/2009 09:24 admin
Работа sendmail заключается в приеме почты от почтовых программ предоставленых хостером, и отправке ее на соответствующий адрес, в соответствии с имеющимися настройками. Если почта остается в папке usr/local/!sendmail!, значит обращайтесь к хостеру, настроить отправку в его компетенции. PHP сам по себе не может отправлять почту, он лишь дает команду по отправке программе передачи почты в данном случае sendmail!
#8 24/09/2009 07:30 MVV
reply
Класная программулька, Спасибо, как поставил сразуже заработала.
#9 11/07/2009 12:00 Алик
reply
А не подскажете как именно коменнтировать в файле php.ini? ";;" - Это и означает коментарий?
12/07/2009 20:36 admin
да, достаточно и одного знака ; чтобы строка до переноса была закомментирована
#10 12/02/2009 12:00 stacy
reply
Скажите плиз у меня сайт расположен на сервере у которого нет доступа в интернет но есть другой сервер у которого он имеется. Может можно как настроить отправку и получение почты с первого сервера через второй
12/02/2009 13:10 admin
Если второй сервер может выступать как прокси, то настройте Ваш сервер. Отправка почты осуществляется сервером, таким образом все зависит от сетевых настроек Вашего сервера.
#11 03/12/2008 09:47 Сергей
reply
скачал не запускается программа эта
03/12/2008 09:57 admin
Да, действительно, файл неполный оказался, уже обновил. Попробуй еще раз, спасибо за информацию

Дополнительно

» С чего начать сайт?

» Установка программ

» Пример создания сайта

» Хостинг и домен

» Оптимизация сайта

» Раскрутка сайта

» Заработок web-мастера

» Примеры PHP/Javascript

» Блог и мои записки

Последние новости

Статьи по рейтингу

» Особенности покупки контента 5.0 1
» Выбор хостинга 4.8 5
» Поисковые системы 4.7 9
» Курс молодого web-мастера 4.6 21
» Где взять бесплатные ссылки 4.5 11
» Что такое сниппеты 4.5 6
» Addstudio - SEO модуль 4.5 4
» Отладка js и CSS 4.4 14
» Стратегия дохода на Sape.ru 4.3 3
» Каталоги и биржи статей 4.3 4