LINUX.ORG.RU
ФорумAdmin

Почта в Linux. Как происходит выбор почтового сервиса?


0

1

День добрый.


Немогу понять вот что.

Предположим, в системе установлен сервер sendmail. Его демон висит в процессах. И можно отправлять почту, например с помощью программы mail, или из PHP с помощью функции mail() или еще откуда-то.

Удаляем sendmail из системы, устанавливам программу ssmtp. Настраиваем, чтоб она работала, например, через smpt сервер mail.ru. Программа ssmtp - не сервер, ее демон не висит в процессах. Однако же почта всеравно отправляется и через программу mail, и через PHP с помощью функции mail().


Вопрос: как и откуда система знает, что если установлен sendmail, то пересылку нужно делать через sendmail. А если установлен ssmtp, то пересылку делать через ssmtp? Где это настраивается? Где скрыта эта логика?

Гугли про MTA и как передается почта. А так да, выше правильно сказали, такие программы обычно делают симлинк sendmail на себя.

madgnu ★★★★★
()
Ответ на: комментарий от madgnu

Гугли про MTA и как передается почта. А так да, выше правильно сказали, такие программы обычно делают симлинк sendmail на себя.

Почитал, но объяснения не нашел.

Симлинка же мало. Sendmail - это сервер, у него крутится демон, он может следить за /var/mail/spool и передавать почту.

А ssmtp - это просто программа. Возникает вопрос: как система узнает, что нужно запустить ssmtp для передачи почты?

pat_minus
() автор топика
Ответ на: комментарий от blind_oracle

Оно ставит подмену sendmail, как и почти любой другой транспортный агент.

Где оно ставит подмену sendmail? Только линк на исполнимый файл, или еще где-то?

pat_minus
() автор топика

Демон не нужен. Например, в случае Exim, когда исполняется твоя mail(), то php дергает /usr/lib/sendmail (это симлинк на exim), и передает ему на stdin письмо, тогда этот экземпляр Exim делает доставку далее. И это всё при отключенном демоне.

Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

Демон, ещё, обрабатывает очередь сообщений, если письмо не прошло с первой попытки. ИМХО, это поважнее приёма по SMTP.

mky ★★★★★
()

Логики нету! конфиги рулят!

ipwww ★★
()
Ответ на: комментарий от pat_minus

Только линк на /usr/bin/sendmail, все тобой перечисленные php mail(), mailx и прочие просто вызывают этот файл и отправляют почту через него.

blind_oracle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.