Отправка письма (почты) с помощью PHP
Главная  
Про проект  
Книги  
Обмен ссылками  
Сервис  
Добавить статью  
Главная
Про проект
Книги
Обмен ссылками
Сервис
Добавить статью
Главная
dragon
Статьи в разделе:
Примеры PHP/Javascript
всего статей (9)

» Bcompiler расширение php
» Отладка скриптов в php
» Авторизация на sape.ru
» Cокеты в php
» Защита js кода
» Отправка почты на PHP
» Создание часов
» Защита от спама
» Резолюция дисплея на Javascript

Другие разделы:
    Подготовка к созданию сайта
    Установка програм
    Пример создания сайта
    Хостинг и домен
    Оптимизация сайта
    Раскрутка сайта
    Заработок Web-мастера

 
 
 
sape
комплектующие для компьютеров
 
Кнопка сайта:
Самостоятельное создание сайта, веб-дизайн, web-программирование, продвижение и оптимизация сайта




По всем вопросам пишите на webmaster@info-pages.com.ua. Вы можете свободно использовать/размещать/перепечатывать статьи сайта всего лишь указав ссылку на источник.
Отправка письма (почты) с помощью PHP
  

   Отправка письма (почты) с помощью PHP

Размещено: 27 июля 2008   
   В процессе работы на 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>\nContent-Type: text/html; charset=windows-1251";

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

?>

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

@ (символ собаки означает не уведомлять про ошибки при отправке если таковые появятся)
mail(
"semen@mail.ru" (почтовый ящик на который мы отсылаем письмо),
"info-pages.com.ua\n" (название письма),
$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) и укажите путь для хранения получаемой почты.

   Вот и все, теперь Вы можете полноценно отправлять и получать почтовые письма.
Ваша оценка:
 kod
Проголосовать!
Спасибо, Вы успешно
проголосовали!
Ошибка скрипта,
сообщите администратору!
Ошибка,
неверный код!
Вы уже голосовали!
Текущий рейтинг: +4, проголосовало 11
Комментариев к статье (15)
Комментарий добавил: Сергей 09:47 03.12.08
скачал не запускается программа эта
Комментарий добавил: admin 09:57 03.12.08
Да, действительно, файл неполный оказался, уже обновил. Попробуй еще раз, спасибо за информацию :)
Комментарий добавил: stacy 12:00 12.02.09
Скажите плиз у меня сайт расположен на сервере у которого нет доступа в интернет но есть другой сервер у которого он имеется. Может можно как настроить отправку и получение почты с первого сервера через второй boom
Комментарий добавил: admin 13:10 12.02.09
Если второй сервер может выступать как прокси, то настройте Ваш сервер. Отправка почты осуществляется сервером, таким образом все зависит от сетевых настроек Вашего сервера.
Комментарий добавил: Алик 12:00 11.07.09
А не подскажете как именно коменнтировать в файле php.ini? ";;" - Это и означает коментарий?
Комментарий добавил: admin 20:36 12.07.09
да, достаточно и одного знака ; чтобы строка до переноса была закомментирована
Комментарий добавил: MVV 07:30 24.09.09
Класная программулька, Спасибо, как поставил сразуже заработала.
Комментарий добавил: АННА 23:39 26.11.09
Здравствуйте. А почему почта остается в папке usr/local/!sendmail!? Мне нужно, чтобы почта отправлялась по интету на почту Спасибо
Комментарий добавил: admin 09:24 03.12.09
Работа sendmail заключается в приеме почты от почтовых программ предоставленых хостером, и отправке ее на соответствующий адрес, в соответствии с имеющимися настройками. Если почта остается в папке usr/local/!sendmail!, значит обращайтесь к хостеру, настроить отправку в его компетенции. PHP сам по себе не может отправлять почту, он лишь дает команду по отправке программе передачи почты в данном случае sendmail!
Комментарий добавил: Алекса 21:12 16.02.10
Не удивляйтесь вопросу, я чайник в этих делах. Скажите, а где находится файл php.ini? Спасибо.boom
Комментарий добавил: admin 08:37 17.02.10
файл php.ini находится в корне папки с распакованым/установленым php
Комментарий добавил: pviktor 22:58 19.03.10
У меня, если я с сайта (на локальном хосте), отправляю письмо, пишет, что письмо отправлено, но на "мыло" оно не приходит. Если отвечаешь, то пишет, что сервер SMTP не найден. Не подскажете - в чем может быть проблема? В php.ini все так, как Вы пишете. Спасибо!
Комментарий добавил: admin 10:29 20.03.10
с локального хоста отправить на почту в интернете у Вас не получится, используйте программу Test Mail Server Tool (ссылка в статье). Эта программа прослушивает порт 25 на локальном хосте и будет получать письма
Комментарий добавил: pviktor 10:46 20.03.10
Cпасибо за ответ! Дело в том, что я уже установил эту программу. Без нее вообще ничего не получалось... У меня XAMPP с Mercury Mail установлены.
Комментарий добавил: Иван 09:41 26.03.10
Здравствуйте. Всё вроде сделал правильно, а письмо не приходит. Какие ещё могут быть причины?
Д О Б А В И Т Ь    К О М М Е Н Т А Р И Й:
   Ваше имя:
   
   Почтовый ящик @:
    * - не отображается
   Текст комментария:
   



   Введите защитный код: :) :( ;) :| 8) :] :0 :S :Ok :sos :B B( yes boom write
   kod
   
 

Где еще почитать на эту тему?
 

                                                                                                                                                                                                                                                                                                                                                                                 
Авторизация

Логин:
Пароль:



















 
Все права защищены, 2007-2009рр. статей: всего 71, на модерации 245; комментариев: 331, ссылок: всего 15, новых 0; выполнено за 0.11 sec. Карта сайта