Sendmail против SMTP

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

Ответы

Ответ 1

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

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

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

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

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

Ответ 2

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

Использовать sendmail.

Ответ 3

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

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

Полезной ссылкой для Postfix может быть Общие рекомендации по доставке почты - обратите внимание на цитату, говорящую

Отправить почту через SMTP вместо /usr/sbin/sendmail.

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

Ответ 4

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

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

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

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

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