24.01.2010 сайт: http://www.sendmail.org условия использования: бесплатно
скачать sendmail
версия для windows
Подробная настройка sendmail
sendmail для windows с библиотеками для возможности отправки почты по защищенному соединению. Необходим для отправки почты с помощью встроенных функций серверных языков программирования(php, perl и т.д.). В архиве пример конфигурационного файла sendmail.ini с комментариями на русском.
Вот пример конфигурации sendmail.ini
; конфигурационный файл sendmail
; здесь укажите сервер исходящей почты smtp_server=smtp.mail.ru
; порт smtp, если обычный режим отправки, то порт будет 25 ; если сервер работает в защищенном режиме (TLS), то порт 465, например почта гугла работает через 465 порт smtp_port=25
; домен по умолчанию (совсем не обязательно) ;default_domain=local
; лог ошибок error_logfile=error.log
; лог отправки, необходим на стадии тестирования. содержит весь текст переговоров с сервером при отправке писем. debug_logfile=debug.log
; Если smtp сервер с авторизацией, укажите логин пароль(без кавычек), если без авторизации ничего не пишите auth_username= auth_password=
; если перед отправкой почты сервер требует авторизацию через POP, заполните эти поля ;pop3_server= ;pop3_username= ;pop3_password=
; email адрес, от которого идет отправка, вставится в заголовок «From: » ; если отправка писем идет через mail.ru, здесь обязательно должен быть адрес, через который произведена авторизация. force_sender=
; хост, который указывается при авторизации в команде ehlo/helo ; указывайте домен, через который авторизуетесь hostname=mail.ru
Комментарии
25.12.2010 cool спасибо помогло
14.04.2011 yusya Подскажите, а как перезапустить sendmail без перезагрузки сервера? ОС Windows Server 2003.
15.04.2011 Виктор yusya, никак, надо перегружать. Ну хотя если sendmail запущен как служба, то можно его перегрузить в службах.
28.07.2011 Stas а куда копировать распакованые файлы ОС Windows Server 2003 стоит только Apache C:/apache/localhost/www/site/
05.08.2011 Сергей Stas, а если стоит один только apache, зачем вам sendmail? Для работы sendmail нужен еще серверный язык, типа perl или php. А вообще можно класть его куда хотите, если его не было, то все равно в настройках предется прописывать пути к нему. Но обычно sendmail помещают или в папку apache или на одном уровне с папкой apache. А вот вы привели пример пути к папке с файлами сайта, а это совсем не то.
12.12.2011 Стас стоит и apache и php в этих папках менять что-то надо
Настройка sendmail под Windows
Данная статья входит в цикл статей, посвященных установке веб сервера на windows.
Установка веб сервера на windows Настройка и защита apache под windows Бесплатный ДНС сервер Настройка php Настройка mysql Настройка phpmyadmin Настройка sendmail (эта статья) Настройка ftp сервера FileZilla
В этой статье я расскажу как установить и настроить sendmail на домашнем сервере под windows. Для начала скачайте комплект sendmail. Если у вас уже стоит sendmail можете его удалить, а на его место скопировать скаченные файлы. Особенно это касается тех, кто устанавливал сервер с помощью xampp. Дело в том, что в последних версиях xampp лежит новая версия sendmail, лично я так и не смог его запустить, к тому же он работает с уже другим типом конфигурации. Возможно проблемы с этим новым sendmail и будут решены в дальнейшем, а пока предлагаю использовать старый проверенный вариант, который работает как «трактор». Так же в архиве лежит две библиотеки, с помощью которых sendmail может работать с защищенными соединениями TLS, типа почты гугла(gmail).
Скачали архив, распаковали, закачали файлы в папку sendmail, если такой папки нет, создайте ее. Для xampp это путь /xampp/sendmail. Теперь открывайте настройки sendmail.ini, в архиве находится пример этого файла с русскими комментариями. Привожу пример файла настроек
; конфигурационный файл sendmail
; здесь укажите сервер исходящей почты smtp_server=smtp.mail.ru
; порт smtp, если обычный режим отправки, то порт будет 25 ; если сервер работает в защищенном режиме (TLS), то порт 465, например почта гугла работает через 465 порт smtp_port=25
; домен по умолчанию (совсем не обязательно) ;default_domain=local
; лог ошибок error_logfile=error.log
; лог отправки, необходим на стадии тестирования. содержит весь текст переговоров с сервером при отправке писем. debug_logfile=debug.log
; Если smtp сервер с авторизацией, укажите логин пароль(без кавычек), если без авторизации ничего не пишите auth_username= auth_password=
; если перед отправкой почты сервер требует авторизацию через POP, заполните эти поля ;pop3_server= ;pop3_username= ;pop3_password=
; email адрес, от которого идет отправка, вставится в заголовок «From: » ; если отправка писем идет через mail.ru, здесь обязательно должен быть адрес, через который произведена авторизация. force_sender=
; хост, который указывается при авторизации в команде ehlo/helo ; указывайте домен, через который авторизуетесь hostname=mail.ru
Вносите свои данные, логин-пароль и т.д. и все готово. Сейчас настройте PHP, чтобы он мог использовать sendmail. Откройте php.ini и найдите следующие строки
Первые строки указанные здесь закройте комментарием как показано (они не нужны), нужна только последняя строка указанная здесь, это путь до sendmail. Укажите свой путь и снимите комментарий (;) если он стоит. Теперь перегружайте сервер и все готово, функция mail() должна работать. Если возникают проблемы с отправкой почты, смотрите файлы error.log и debug.log в sendmail(если вы их конечно включили в настройках sendmail.ini)
Другие статьи, посвященные запуску сервера на windows
Установка веб сервера на windows Настройка и защита apache под windows Бесплатный ДНС сервер Настройка php Настройка mysql Настройка phpmyadmin Настройка sendmail (эта статья) Настройка ftp сервера FileZilla
Комментарии
03.12.2010 Andrei Если у мя сервер www.server.ru , то в smtp_server=smtp.server.ru указываю так?
04.12.2010 админ Andrei, совсем не обязательно. Смотря как настроен smtp сервер. Чаще всего mail.server.ru или smtp.server.ru. А может быть и без поддомена, например просто server.ru. Это надо узнать там, где smtp сервер находится.
05.12.2010 Sheg Письмо почему то не доходит. В error.log: SSL is not available on this server. В чём проблема, smtp Гугловский.
05.12.2010 админ Sheg, в ошибке сказано, что ваш сервер не поддерживает SSL соединение. Гугловская почта работает только в защищенном режиме SSL, поэтому вам нужно установить поддержку SSL для sendmail. http://webi.ru/webi_files/sendmail_ssl.html — здесь комплект с поддержкой SSL.
09.12.2010 Вячеслав. Все настроил, при отправке письма скрипт ошибок не выдает — но в итоге, письмо для адресата так и не доходит. В чем может быть проблема ? Спасибо.
09.12.2010 админ Вячеслав, включите логи. Лог ошибок и лог отправки и посмотрите в эти файлы. И сразу все будет ясно.
10.12.2010 Вячеслав. Логи включены — ни каких сообщение об ошибках нет.
10.12.2010 Evengar Вчера всё работало норм, сегодня письмо не доходит через мейл.ру. Ошибка Socket Error # 10054 Connection reset by peer.
11.12.2010 админ Вячеслав, ну а в debug.log что? Там ошибок нет, по этим логам письмо отправляется?
11.12.2010 админ Evengar, ну если вчера отправлялось, а сегодня нет, значит проблемы с вашей связью или с сервером mail.ru
21.12.2010 Алексей У меня sendmail даже на *.exe никак не реагирует, не говоря о скриптах, и в логах тож ниче нет(((
21.12.2010 админ Алексей, можно подробнее? Что значит «sendmail на *.exe не реагирует»?
и письмо не отправляется в чем причина , что не так.
26.12.2010 админ Виталий, что-то не совсем понятно. вроде начинается защищенное соединение и обрывается. с другими серверами пробовали коннектиться?
04.01.2011 Алексей К. Та же проблема с ошибкой: «Socket Error # 10054 Connection reset by peer.»
И еще, по моему на Unix такой ошибки нету. Но письма все-равно не отправляются.
04.01.2011 Алексей К. Спасибо вам большое . Все получилось при использовании другого сервера почты!
04.01.2011 И еще вопрос,до каких размеров будет расти debug.log ? Или его можно отключить?
04.01.2011 админ конечно лог отправки и лог ошибок можно отключить, просто удалите эту строку из конфига или закройте комментарием (;)
05.01.2011 Алексей К. Спасибо еще раз! С Новым годом.
10.01.2011 Alex Подскажите пожалуйста. Я первый раз пытаюсь настроить sendmail. Вообщем если я правильно понял настройки которые в sendmail.ini это для почты с которой будет отправляться письма, а адресс почты который указан в mail(); это куда будет производиться отправка. Если да, все делаю по примеру, почта у меня на гугле: smtp_server=smtp.gmail.com smtp_port=587 auth_username=name@gmail.com auth_password=pass force_sender=name@gmail.com hostname=gmail.com
Блог является сборником всяческих полезностей для программистов и не очень. Иногда я сталкиваюсь с проблемами и пишу заметочку как их побороть, чтобы облегчить жизнь людям и себе
17 августа 2011 г.
Отправка почты bat файлом с помощью sendmail
Добрый вечер. Тема сегодняшней вечеринки это отправка почты с bat файла. И так, поехали!
Для отправки почты мы будем использовать консольную программку sendmail. Она широко используеться в *nix системах, но есть и ее аналог под Windows. Вот он нам и нужен.
В архиве мы обнаружим 4 файла, а нужен нам sendmail.ini. Через этот файл можно настроить работу самой утилиты. Открыв файл блокнотом, можно заметить комментарии на русском языке. Из настроек нужно указать smtp_server=server_name , ну и логи. Остальное можно закомментировать. Готово? Далее готовим письмо, которое будем отправлять. Создаем текстовый файл (напр. message.txt), можно прямо в папке с sendmail и пишем туда вот такое:
Ну думаю, что не стоит обьяснять что к чему. Просто укажите желаемые адреса. Сохраняем. Создаем test.bat и делаем в нем запись: c:\sendmail\sendmail.exe -t Где c:\sendmail это путь к папке с утилитой. Сохраняем, запускаем. Если возникают проблемы, смотрим error.log и debug.log в папке с sendmail.
Вот с помощью таких простых штучек и было написано оповещение админу, при малом количестве свободного места на диске. Bat файл проверяет наличие места, если его мало, то идет отправка письма ему на мыло. Вот такая вот вечеринка у нас вышла. Спасибо!
Php mail под windows (настройка sendmail на windows)
С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail() . И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.
Обычно эти ошибки имеют примерно такое описание: Warning: mail() [function.mail]: Failed to connect to mailserver at «localhost» port 25, verify your «SMTP» and «smtp_port» setting in php.ini or use ini_set() in E:\www\simplemail\mailer.php on line .
Дело в том, что функция mail сама по себе почту не отправляет, она просто вызывает программу sendmail, которая в дистрибутив web сервера и php интерпретатора не входит (и не должна).
Sendmail, в свою очередь, для отправки почты использует SMTP сервер.
Таким образом, чтобы php скрипт мог отправлять почту нужно установить и настроить sendmail и SMTP сервер.
Версию sendmail для Windows можно скачать здесь.
Установка и настройка выполняется в три этапа.
1) Распаковываем архив на тот же диск, где установлен php. Например, я создал папку C:\wamp\sendmail.
Как видите, нужно только указать путь к sendmail чтобы php мог ее найти.
3) Настраиваем sendmail. Все настройки находятся в файле sendmail.ini (расположен в папке с sendmail).
Но перед тем как приступать к настройке пару слов об SMTP сервере. Вам совсем не обязательно устанавливать сервер на вашем компьютере. Многие почтовые сервисы предоставляют бесплатный доступ к своим серверам.
Ниже я покажу пример настройки sendmail для работы с SMTP сервером mail.ru, но, естественно, вы выбрать любой другой.
Итак, открываем sendmail.ini и устанавливаем следующие параметры:
smtp_server=smtp.mail.ru ; адрес SMTP сервера smtp_port=25 ; порт SMTP сервера
default_domain=mail.ru ; домен по-умолчанию
error_logfile=error.log ; файл в который будет записываться лог ошибок
debug_logfile=debug.log ; очень полезная на этапе отладки опция. Протоколируются все операции, которые выполняет sendmail
auth_username=account_name@mail.ru ; имя вашего аккаунта auth_password=account_password ; ваш пароль
; следующие три опции используются если перед авторизацией на SMTP сервере требуется авторизация на POP3 сервере pop3_server=pop.mail.ru pop3_username=account_name@mail.ru pop3_password=account_password
; параметр для команды MAIL FROM force_sender=account_name@mail.ru
Теперь не забудьте перезапустить web сервер, чтобы изменения вступили в силу.