Настройка ssl 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 можете взять тут

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

Статья просмотренна 90432 раз, зашло посетителей 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 с библиотеками для возможности отправки почты по защищенному соединению.
Необходим для отправки почты с помощью встроенных функций серверных языков программирования(php, perl и т.д.).
В архиве пример конфигурационного файла sendmail.ini с комментариями на русском.

Вот пример конфигурации 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=

Комментарии


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
в этих папках менять что-то надо


12.03.2012 антон
а не подскажете как отправлять с помощью sendmail емейлы с произвольного адреса(например с адреса admin@мойдомен)?
и если у меня на сервере настроены виртуальные хосты можно ли для каждого задать свой конфигурационный файл sendmail.ini?

sendmail_from =
SMTP =
smtp_port = 25
sendmail_path = "C:\php\sendmail-ssl\sendmail.exe -t"

В файле sendmail.ini ввел такое:


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


; порт smtp, если обычный режим отправки, то порт будет 25
; если сервер работает в защищенном режиме (TLS), то порт 465, например почта гугла работает через 465 порт

; домен по умолчанию (совсем не обязательно)

; лог отправки, необходим на стадии тестирования. содержит весь текст переговоров с сервером при отправке.

; Если smtp сервер с авторизацией, укажите логин пароль(без кавычек), если без авторизации ничего не пишите

; если перед отправкой почты сервер требует авторизацию через POP, заполните эти поля

;pop3_server=
;pop3_username=
;pop3_password=

; хост, который указывается при авторизации в команде ehlo/helo
; указывайте домен, через который авторизуетесь


Зашел в файл debug.log выдает ошибки и не работает, помогите!



10.08.2012 Сергей
Не подскажете, зачем в архиве crash.txt собирается ВСЯ информация о моем компьютере и что с ней затем происходит?


18.01.2013 Владислав
10.08.2012 Сергей
Не подскажете, зачем в архиве crash.txt собирается ВСЯ информация о моем компьютере и что с ней затем происходит?

тоже заинтересовался этим вопросом.


29.01.2013 Леха
Зачем не знаю, но исходя из имени файлика предполагаю, что это техническая инфа для определения состояния компа, чтоб потом в момент обвала (краха) системы определить, что и где стояло, как работало.


С сайта была получена анкета с такими данными:
Имя:
Пароль: 123654
Любите ли экономить время: yes
Сколько часов в день вы спите 6 часов
Своими наработками в экономии времени: УРА


26.08.2014 Вика
Виктория ученица Евгения Попова )


12.01.2016 shahzod
skajite pojaluysta a esli net papki sendmail v papke xampp - to kak postupit.


12.01.2016 shahzod
Ya bi hotel svyazatsya s administratorom, esli eto vozmojno.

Столкнулся с проблемой: на правильно настроенном сервере Apache с установленными модулями и настроенными доменными записями у провайдера — письма отправленные через функцию mail из скриптов php попадали в спам или не доставлялись вовсе.

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

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

Система: Ubuntu 20.06
Почтовый сервис: Яндекс

1. Установка Sendmail

Если по какой-то причине не был установлен. Произведите базовую установку и настройку


Правим php.ini


Заголовок «Return-Path:» является важным заголовком в глазах почтовых сервисов.
Если его не установить, заголовок будет равен примерно такому значению «Return-Path: <noreply@localhost.localdomain>».

Очень желательно чтобы значение заголовка всегда совпадало с именем домена с которого отправляется письмо, независимо от значения заголовка «From:», иначе оно может быть отправлено в «Спам» или же отклонено вовсе.

2. Настройка DNS записей

Нам необходимо настроить SPF, DMARC, DKIM записи.

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

На что следует обратить внимание — чтобы в SPF был прописан IP-адрес сервера.


Затем следует запросить у провайдера DNS-хостинга обратную запись rDNS (PTR-запись).
Привязать свой домен к ip-адресу сервера.

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

4. Изменить hostname

Установить hostname равный названию нашего домена:


5. Редактировать файл sendmail.mc

Переходим к файлу /etc/mail/sendmail.mc

Нам необходимо настроить заголовки «Received: from» и «Received: by». Они являются важными при определении уровня доверия к серверу отправляющему электронную почту.

Добавляем следующие строки в конце файла перед MAILER_DEFINITIONS


И в конец файла:

6. Проверяем настройки apache и файервола


Ищем строчки и заменяем www-data на текущего пользователя под которым запущен apache

Начиная с версии 8.11, sendmail поддерживает защиту ESMTP соединения с помощью расширения STARTTLS ( RFC 2487 ). Для настройки TLS прежде всего нужно создать SSL сертификат и секретный DSA-ключ для шифрования:

Если у вас уже есть ключ шифрования, то для создания сертификата следует подать команду:

Параметр -days позволяет указать количество дней, в течение которых сертификат будет действительным. Чтобы проверить созданный сертификат, можно воспользоваться следующей командой:

Если вы не планируете использовать TLS для авторизации (не путать с SMTP авторизацией) или используете сертификат, подписанный самим собой, следует создать symlink:

В противном случае следует поместить сертификат авторизации в файл /etc/mail/certs/CAcert.pem . Не забудьте установить права, запрещающие чтение/запись файлов сертификатов и ключей простым пользователям:

Теперь следует настроить sendmail. В .mc файле конфигурации нужно добавить следующие строки:

После добавления вышеуказанных строк в файл конфигурации следует пересобрать его с помощью m4 (см. файл /usr/share/sendmail/README ) и рестартовать уже запущенный sendmail:

Для проверки настроек TLS можно воспользоваться командой telnet:

Для того чтобы научить sendmail работать по SSL (без использования STARTTLS), нужно создать и добавить в .mc файл сертификат и ключ для шифрования, как описано выше, а также добавить следующие строки: Не забудьте перезапустить sendmail: Для проверки можно воспользоваться командой openssl:

Настройка SMTP авторизации

Для настройки авторизации следует пересобрать sendmail с поддержкой SASL. Для этого следует установить пакет cyrus-sasl2 или порт security/cyrus-sasl2 . Для включения поддержки SASL нам потребуется перекомпилировать sendmail следующим образом: Также можно воспользоваться набором site.tar.gz и пересобрать sendmail, установив настройку SENDMAIL_SASL=Yes в mk.conf.

Далее следует создать файл конфигурации SASL для sendmail ( /usr/local/lib/sasl2/Sendmail.conf ):

Добавляем в /etc/rc.local строки для запуска saslauthd:

Теперь остается только включить поддержку авторизации в .mc файле конфигурации sendmail:

Не забудьте перезапустить sendmail:

Для проверки настройки авторизации можно воспользоваться командой telnet:

При правильной настройке в ответе сервера на команду "EHLO" должна присутствовать строка "250-AUTH". В случае если в файле конфигурации запрещено использование PLAIN авторизации по незащищенному соединению, вместо команды telnet следует использовать команду openssl:

Смотрите также /usr/share/sendmail/README , Настройка TLS и SSL.

Настройка sendmail как SMTP клиента с авторизацией

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

Указываем SMTP-сервер, имя и пароль пользователя, а также метод аутентификации в отдельном файле /etc/mail/authinfo :

Создаем хэшированную базу данных /etc/mail/authinfo.db :

Как заставить sendmail использовать /etc/hosts

По умолчанию sendmail использует в первую очередь DNS. Чтобы заставить его сначала смотреть /etc/hosts , нужно создать файл /etc/mail/service.switch и прописать в нем следующую строку:

После этого достаточно перезапустить sendmail:

Хранение писем в Maildir

По умолчанию sendmail использует mail.local в качестве локального агента доставки почты. При этом почта доставляется в формате стандартного BSD mailbox. Чтобы доставлять почту в Maildir, нам потребуется установить альтернативный агент доставки mail.buhal , который можно скачать отсюда.

Сначала нужно собрать и установить mail.buhal:

Далее следует указать mail.buhal в файле конфигурации sendmail в качестве локального агента доставки:

Теперь достаточно перекомпилировать файл конфигурации и перезапустить sendmail.

В портах OpenBSD, в категории mail , есть программы procmail и maildrop , которые также поддерживают формат Maildir и дополнительные расширения данного формата.

Использование procmail в качестве LDA

После установки procmail из портов или пакетов, необходимо создать глобальный конфигурационный файл. Пример конфигурации:

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