Sendmail против SMTP - PullRequest
       16

Sendmail против SMTP

19 голосов
/ 25 августа 2009

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

Ответы [ 4 ]

37 голосов
/ 25 августа 2009

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

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

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

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

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

7 голосов
/ 25 августа 2009

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

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

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

Отправка почты через SMTP вместо /usr/sbin/sendmail.

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

6 голосов
/ 25 августа 2009

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

Используйте sendmail.

5 голосов
/ 25 августа 2009

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

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

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

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

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

...