Sendmail настройка в windows

Обновлено: 04.07.2024

1 Установить полноценный почтовый сервер, например Kerio Connect (не реклама)
2 Использовать скрипты (классы) для работы с почтой: Zend_mail, PHPmailer и т.д.
3 Установить готовые веб-серверы типа Денвер, XAMPP
4 Воспользоваться эмуляцией демона sendmail для OS Windows

На помощь пришел 4-й пункт! Качаем, распаковываем, и начинаем настройку.

Настройка sendmail.ini

Настройка php.ini

Находим секцию [mail function]

комментируем все строки, кроме пути к sendmail, в этом пути прописываем полный путь к бинарнику.

Пишем простейший скрипт

ну пояснять тут ничего не буду, самый первый линк этой статьи видет на пояснения.

Разбор логов

Это вид простейшего лога. Ессно все параметры типа легальное мыло, домены, ай-пи адреса я заменил на вымышленные, что бы потом меня не спамили.

Ну и в ответ, на своем почтовом ящике, куда я послал почту я её и получил.

Сам сервис для отправка почты через sendmail в ОС Windows можете взять тут

Удачи, пиши отзывы, кликайте на рекламу )))

Статья просмотренна 90433 раз, зашло посетителей 32149

извини, но статья не раскрыта!можно было и поподробнее написать!

А что там описывать, есть бинарник, к нему конфиг, показал как настроить. Работает. Что не так. Положить в рот и разжевать?

тогда из таких, кому разжовывать, говно-девелоперы получаются.

заебали со своими девелоперами! Есть правило в русском языке, которое запрещает использование иностранных слов, когда есть русский аналог. РАЗРАБОТЧИК, а не девелопер.

ЗЫ в последнее время на работе я всё пишу на английском и граница между двумя языками исчезает для меня.

Помогите мне объяснить как можно настроить sendmail на одном сервере ,чтоб можно было несколько отправителей , типо 4 сайта на сервере , но в php.ini и в sendmail только можно одного отправителя вписать со всеми настройками ,или нужно под каждого отправителя отдельный движек sendmail ?

Приветствую. судя по статье так она про Sendmail в нэти везде одинаковая чтобы снять заглушку надо приминить
username=
password=
вот или я бестолковый или лыжи едут, username= и password= чего надо в водить smtp адреса от которого будит идти рассылка или отправка писем если да то опять не то, вот подскажите кто знает вот к примеру у меня внешний айпишник то есть ip статический возьмём к примеру локал хост денвер ну что хамп что денвер у них в sendmail заглушка стоит, вот установил я к примеру денвер ip провайдера внешний тоесть сервак в нэти через ip доступин виден, вот установил я к примеру денвер, вот каким макаровым мне снять заглушку в sendmail не таким способом как выше а без username= и password= то и есть по другому говоря есть скрипт(ы) php формата анонимной отправки писем, с хостингов они работают но банятся, вот как мне настроить или какой установить sendmail чтоб php скрипт анонимнай отправки писем отправлялся с компа с локального сервака sendmail может тут кто подскажет.

Программа sendmail которую мы скачивали в 4-ом пункте она бесплатная или ломаная?

Бесплатная, можете юзать, для тестов самое оно.

Спасибо за статью, все очень понятно. Получилось с первого раза настроить. Весь инет до этого облазил нигде толкового описания нет. Кстати прога какие нибудь ограничения имеет?

Пожалуйста. На продакшене у вас врятли будет Windows, а это прога просто эмулирует работы подобной проги в *nix системах.
Она для тех кто по каким-то причинам не хочет переходить на Linux, являясь программистом PHP, а остаётся на Windows.

как присоединить файл архив к письму?

Спасибо большое. 3 дня подряд не смог сделать

Подскажите как настроить почтовый сервер на домашнем ПК, у меня имеется домен, домен-регистратор разрешает вносить все необходимые записи.

В этой статье я расскажу как установить и настроить sendmail на домашнем сервере под windows.
Для начала скачайте комплект sendmail.
Если у вас уже стоит sendmail можете его удалить, а на его место скопировать скаченные файлы.
Особенно это касается тех, кто устанавливал сервер с помощью xampp.
Дело в том, что в последних версиях xampp лежит новая версия sendmail, лично я так и не смог его запустить, к тому же он работает с уже другим типом конфигурации.
Возможно проблемы с этим новым sendmail и будут решены в дальнейшем, а пока предлагаю использовать старый проверенный вариант, который работает как "трактор".
Так же в архиве лежит две библиотеки, с помощью которых sendmail может работать с защищенными соединениями TLS, типа почты гугла(gmail).

Скачали архив, распаковали, закачали файлы в папку sendmail, если такой папки нет, создайте ее.
Для xampp это путь /xampp/sendmail.
Теперь открывайте настройки sendmail.ini, в архиве находится пример этого файла с русскими комментариями.
Привожу пример файла настроек

; конфигурационный файл sendmail

; порт 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=

Вносите свои данные, логин-пароль и т.д. и все готово.
Сейчас настройте PHP, чтобы он мог использовать sendmail.
Откройте php.ini и найдите следующие строки

[mail function]
; SMTP = localhost
; smtp_port = 25
; sendmail_from = postmaster@localhost
sendmail_path = "\xampp\sendmail\sendmail.exe -t"

Первые строки указанные здесь закройте комментарием как показано (они не нужны), нужна только последняя строка указанная здесь, это путь до sendmail. Укажите свой путь и снимите комментарий (;) если он стоит.
Теперь перегружайте сервер и все готово, функция mail() должна работать.
Если возникают проблемы с отправкой почты, смотрите файлы error.log и debug.log в sendmail(если вы их конечно включили в настройках sendmail.ini)

Установка веб сервера на windows
Настройка и защита apache под windows
Бесплатный ДНС сервер
Настройка php
Настройка mysql
Настройка phpmyadmin
Настройка sendmail (эта статья)
Настройка ftp сервера FileZilla

Комментарии


05.12.2010 Sheg
Письмо почему то не доходит.
В error.log:
SSL is not available on this server.
В чём проблема, smtp Гугловский.


09.12.2010 Вячеслав.
Все настроил, при отправке письма скрипт ошибок не выдает - но в итоге, письмо для адресата так и не доходит.
В чем может быть проблема ?
Спасибо.


09.12.2010 админ
Вячеслав, включите логи.
Лог ошибок и лог отправки и посмотрите в эти файлы.
И сразу все будет ясно.


11.12.2010 админ
Вячеслав, ну а в debug.log что?
Там ошибок нет, по этим логам письмо отправляется?



21.12.2010 Алексей
У меня sendmail даже на *.exe никак не реагирует, не говоря о скриптах, и в логах тож ниче нет(((


21.12.2010 админ
Алексей, можно подробнее? Что значит "sendmail на *.exe не реагирует"?

и письмо не отправляется в чем причина , что не так.



26.12.2010 админ
Виталий, что-то не совсем понятно. вроде начинается защищенное соединение и обрывается.
с другими серверами пробовали коннектиться?

И еще, по моему на Unix такой ошибки нету. Но письма все-равно не отправляются.


04.01.2011 Алексей К.
Спасибо вам большое .
Все получилось при использовании другого сервера почты!


04.01.2011
И еще вопрос,до каких размеров будет расти debug.log ? Или его можно отключить?


04.01.2011 админ
конечно лог отправки и лог ошибок можно отключить, просто удалите эту строку из конфига или закройте комментарием (;)


05.01.2011 Алексей К.
Спасибо еще раз! С Новым годом.

Установка и настройка sendmail

Настраиваем sendmail (8.12.6/7/8) для виртуального почтового хостинга.

Установка sendmail

Сначала устанавливаем итз портов sendmail c поддержкой cyrus sasl (система аутентификации).

После установки sendmail мы должны изменить файл /etc/make.conf. Добавляем в него строчку

Если до этого стоял более старый sendmail, устанавливаем файл submit.cf

Для запуска sendmail будем использовать следующий сценарий (переименуем его в удобоваримый формат):

Для нормального запуска обновленной версии мы должны указать путь к ней (файл /etc/mail/mailer.conf). Это можно сделать либо при помощи команды

либо вручную, изменив файл mailer.conf:

На этом установка sendmail окончена. Осталоь столько запустить его командой

Настройка sendmail

  • freebsd.mc
  • aliases
  • access
  • local-host-names
  • virtusertable

aliases

Этот файл описывает пользовательские псевдонимы, используемые sendmail. Файл расположен в каталоге /etc/mail и представляет собой список вида

Более подробно структура файла aliases описана в aliases (5). В этот файл мы добавляем строку

access

В этом файле мы указываем, для каких IP адресов sendmail должен принимать и пересылать почту. Поскольку для эих целей мы будем использовать аутентификацию cyrus sasl, мы разрешим только отсылку с локального хоста

local-host-names

virtusertable

freebsd.mc

Теперь нам осталось только изменить конфигурацию файла freebsd.mc, чтобы sendmail научился работать с виртуальными почтовыми доменами. Здесь надо понимать, что в том случае, когда существует файл, у которого имя совпадает с названием машины (например, для машины с именем genius файл будет genius.mc), он используется вместо файла freebsd.mc

Вот примерный вид конфигурационного файла:

В строке 6 мы задаем файл с пользовательскими псевдонимами; в десятой строке - имя файла трансляции виртуальных пользователей в настоящих, а в 36-й строке - названия доменов, для которых наш сервер должен обрабатывать почту.
Также ограничим максимальный размер письма одним мегабайтом (строка 49) и запретим рассылать письмо одновременно более, чем 10 получателям (строка 48). Если есть необходимость отправки всей почты на промежуточный SMTP сервер (например, на SMTP сервер провайдера), следует раскомментировать строку 31 и вместо "your.isp.mail.server" указать IP адрес или имя SMTP сервера провайдера.

Запуск и тестирование

Теперь, когда почти все сделано, нам надо пересобрать заново файл конфигурации sendmail и обновить базы данных. Делается это следующим набором команд:

Результатом будет нечто вроде этого:

/usr/bin/m4 -D_CF_DIR_=/usr/local/share/sendmail/cf/ /usr/local/share/sendmail/cf/m4/cf.m4 genius.mc > genius.cf /usr/sbin/makemap hash virtusertable.db < virtusertable chmod 0640 virtusertable.db /usr/sbin/makemap hash access.db < access chmod 0640 access.db /usr/sbin/sendmail -bi /etc/mail/aliases: 26 aliases, longest 18 bytes, 276 bytes total chmod 0640 /etc/mail/aliases.db install -m 444 freebsd.cf /etc/mail/sendmail.cf install -m 444 freebsd.submit.cf /etc/mail/submit.cf

Теперь перезапускаем sendmail

Наличие строчки "250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN" говорит нам о том, что sendmail может аутентифицировать пользователя. Добавляем пользователя:

Вводим пароль пользователя и проверяем:

Собственно говоря, на этом настройка sendmail закончена. Теперь настраиваем The Bat! для того, чтобы можно было отправлять почту с аутентификацией:

Заходим в Ящик -> Свойства почтового ящика -> Транспорт -> Аутентификация

(!) Обратите внимание на то, что имя пользователя указано вместе с именем машины.
Выделяем чекбокс "Требовать безопасную (MD5) аутентификацию".

После отправки письма в лог-файле /var/log/maillog должны быть примерно такие записи:

Необходима связка sendmail+cyrus-sasl, в моем случая sendmail 8.12.9 и cyrus-sasl 1.5.28.

если видим SASL то все нормально, преходим самому sendmail, если нет, то:

В связи с распространением мобильных устройств у сотрудников больших и малых офисов становится актуальной отправка почты из любой точки, где есть подключение к Интернет. Кроме того, корпоративные стандарты и здравый смысл подсказывают, что лучше всего это делать через служебный/корпоративный SMTP-сервер.

По понятным причинам для реализации этого необходимо аутентифицировать пользователя. Помогает в этом технология SASL (Simple Authentication and Security Layer).

Самый простой способ аутентификации пользователя - по логину и паролю, однако он же и самый небезопасный. Вполне логичным будет шифрование процесса передачи через Интернет пользовательского логина/пароля. Для этого ваш sendmail должен быть собран с поддержкой TLS (Transport Layer Security, в SMTP поддерживается посредством команды STARTTLS). Данная опция включена с Sendmail начиная с версии 8.11.

Я постараюсь детально и пошагово описать процесс настройки связки Sendmail+Cyrus-SASL для аутентификации удаленных пользователей с использованием сертификатов X.509.

В статье описывается процесс настройки Sendmail 8.13.6. В качестве SASL-модуля используется cyrus-sasl-2.1.22 + cyrus-sasl-saslauthd-2.1.22. Кроме того, используется OpenSSL 0.9.7e-p1. Все это работает под управлением FreeBSD 6.1-RELEASE-p2.

Оговорюсь, что вся информация, приведенная в этой статье, общедоступна в Интернет, найти ее не представляет особого труда. Моя задача заключалась в систематизации и группировке найденных советов и мануалов по отдельным пунктам задачи.

Все ПО, не входящее в стандартный комплект системы, устанавливалось из коллекции портов.

Установка и настройка OpenSSL

После установки (я использовал системый OpenSSL) необходимо отредактировать файл конфигурации (openssl.cnf), чтобы при необходимости изменить каталоги, в которых будут располагаться ключи, сертификаты и прочее во время настройки, а также имена ответственных лиц, наименование организации и пр. Как правило конфиг располагается в каталоге /etc/ssl/.

Установка и настройка cyrus-sasl2

Используем последние доступные в портах на данный момент версии, в моем случае это cyrus-sasl-2.1.22 и cyrus-sasl-saslauthd-2.1.22. После установки необходимо создать файл конфигурации SASL для Sendmail (/usr/local/lib/sasl2/Sendmail.conf), содержащий следующие строки:

Не забываем добавить разрешение запуска SASL в /etc/rc.conf:
Запускаем cyrus-sasl2:
Проверяем, запустился ли он:

Создание сертификатов для TLS

Создаем каталог для хранения ключей/сертификатов:
Далее переходим в него и создаем ключи и сертификат:
Проверяем результат:
Назначаем права на файл с сертификатом и ключом:

Настройка Sendmail

Редактируем файл /etc/make.conf для включения поддержки SASL в Sendmail, для этого добавляем в него строки:
После этого пересобираем Sendmail:
Далее редактируем файл freebsd.mc, обычно находящийся в директории /etc/mail/, добавляя туда
и генерим конфигурационный файл Sendmail:
После этого необходимо перестартовать Sendmail.

проверка конфигурации Sendmail и его работоспособности

Никогда не лишним будет проверить результаты настроек, дабы исключить ошибки. Проверяем, с какими опциями был скомпилирован Sendmail:
Если видим что-то похожее на
значит поддержка SASL и TLS включена в наш Sendmail.

Далее при помощи telnet зайдем на сервер и проверим, какие механизмы аутентификации он поддерживает и стартовала ли поддержка TLS (правильно ли мы сгенерили и подключили сертификаты).
Если вы увидели строки, содержащие AUTH LOGIN и STARTTLS, то ваш сервер настроен верно.

Добавление пользователей в базу SASL

Проверить, какие пользователи добавлены, можно командой:

Настройка клиентов

Клиентские почтовые программы настраиваются в соответствии с инструкцией к конкретному почтовому клиенту. Для настройки необходимо знать логин/пароль, которые описывались предыдущем разделе.

Читайте также: