Sendmail против SMTP

Приложение rails в производстве должно использовать smtp или sendmail для отправки писем?


person dwaynemac    schedule 25.08.2009    source источник
comment
smtp - это протокол, а не программа.   -  person OTZ    schedule 29.11.2010


Ответы (4)


SMTP — это протокол, который используется почти всеми узлами Интернета для отправки почты. Этот протокол использует sendmail. Sendmail определяет, куда отправить ваше сообщение и как.

Некоторые почтовые программы (большинство современных) подключаются напрямую к почтовому серверу и общаются с ним по протоколу SMTP. Однако "традиционный" метод - и, возможно, лучший метод - это позволить sendmail сделать это.

Для этого есть две причины: 1) почти каждая программа в UNIX, которая делает то же, что и sendmail, предназначена для замены (включая Postfix и Exim, например); и 2) sendmail или его замена были разработаны для обработки почты и ни для чего другого - при использовании sendmail вам не нужно разрабатывать SMTP-клиент.

Почтовый клиент Mutt для UNIX — это один из почтовых клиентов, который по-прежнему отказывается общаться по SMTP напрямую с почтовым сервером; хорошее (техническое) описание находится на вики.

Если у вас есть выбор (по крайней мере, в UNIX) использовать SMTP напрямую или использовать sendmail, используйте sendmail, особенно на серверах.

person Mei    schedule 25.08.2009

Как уже упоминалось в NDP, они оба работают нормально, то есть, если ваш объем сообщений не превышает определенного количества.

Например, если ваше приложение может обмениваться данными по SMTP либо с локальным SMTP-сервером (IP 127.0.0.1, порт 25), либо с сервером в той же подсети (т. е. по каналу с малой задержкой), и этот сервер не использует фильтры содержимого до того, как оно поставит сообщение в очередь, обычно вы сможете отправить гораздо больше писем по SMTP за более короткое время.

Полезной ссылкой для Postfix может быть Общие советы по повышению эффективности доставки почты — обратите внимание на цитату:

Отправляйте почту через SMTP вместо /usr/sbin/sendmail.

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

person cite    schedule 25.08.2009

Ваш вопрос неверен - SMTP означает простой протокол передачи почты, тогда как sendmail - это часть программного обеспечения для отправки почты с использованием этого протокола.

Используйте сендмайл.

person Andrejs Cainikovs    schedule 25.08.2009
comment
Вариант № 1: откройте соединение с SMTP-сервером, напрямую общайтесь по протоколу SMTP. Откройте # 2: запустите команду «sendmail». - person EML; 16.12.2019

Они оба будут работать нормально. Action Mailer поддерживает оба варианта.

Я успешно использовал SMTP в нескольких проектах. Я чувствовал, что это было немного более «стандартно», но я могу ошибаться.

Я не использовал sendmail. Меня беспокоит то, что это может быть сложнее настроить в среде разработки, если вы не разрабатываете непосредственно для Unix/Linux. Там, где вы можете общаться напрямую с любым SMTP-сервером, даже с удаленным, вам придется установить sendmail на машину rails, чтобы заставить его работать.

Основная проблема, с которой я сталкиваюсь при работе с электронной почтой, — это асинхронная отправка сообщений. Без локального SMTP-сервера локальный экземпляр sendmail будет более производительным.

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

person ndp    schedule 25.08.2009