Единственная ситуация, в которой я должен был сделать это, посылает шаблонное электронное письмо. В.NET это обеспечивается из поля класс MailDefinition. Таким образом, это - то, как Вы создаете шаблонное сообщение:
MailDefinition md = new MailDefinition();
md.BodyFileName = pathToTemplate;
md.From = "test@somedomain.com";
ListDictionary replacements = new ListDictionary();
replacements.Add("<%To%>", someValue);
// continue adding replacements
MailMessage msg = md.CreateMailMessage("test@someotherdomain.com", replacements, this);
После этого сообщение. Тело было бы создано путем замены значениями в шаблоне. Я предполагаю, что можно смотреть на MailDefinition. CreateMailMessage () с Отражателем :). Извините за то, чтобы быть немного вне темы, но если это - Ваш сценарий, я думаю, что это - самый легкий путь.
SMTP - это протокол, который используется почти всеми хостами Интернета для отправки почты. Этот протокол используется sendmail. Sendmail определяет, куда и как отправлять ваше сообщение.
Некоторые почтовые программы (большинство из них сегодня) подключаются напрямую к почтовому серверу и сообщают ему SMTP. Однако «традиционный» метод - и, возможно, лучший метод - позволить sendmail делать это.
Для этого есть две причины: 1) почти каждая программа в UNIX, которая делает то, что делает sendmail, спроектирована как drop- для замены (например, Postfix и Exim ); и 2) sendmail или его замена были разработаны для обработки почты и ничего другого - с помощью sendmail вам не нужно создавать SMTP-клиент.
Почтовый клиент Mutt для UNIX - это один из почтовых клиентов, который по-прежнему отказывается общаться по протоколу SMTP напрямую с почтовым сервером; хорошее (техническое) описание находится на вики .
Если у вас есть выбор (в любом случае в UNIX), говорить по SMTP напрямую или использовать sendmail, используйте sendmail - особенно на серверах.
Как уже упоминалось в NDP, они оба работают нормально - то есть, если ваш объем сообщений не превышает определенного количества.
Например, если ваше приложение может взаимодействовать по SMTP с любым локальный SMTP-сервер (на IP 127.0.0.1, порт 25) или сервер в той же подсети (т. е. по каналу с низкой задержкой), и этот сервер не использует никакие фильтры содержимого перед тем, как он поставит сообщение в очередь, вы обычно будете иметь возможность отправлять намного больше писем через SMTP за более короткое время.
Полезной ссылкой для Postfix может быть Общие советы по эффективности доставки почты - обратите внимание на цитату, гласящую, что
Отправлять почту через SMTP вместо /usr/sbin/sendmail.
Однако на современном оборудовании, если вы не планируете отправлять более 10 сообщений в секунду, вы не заметите никакой реальной разницы.
Ваш вопрос неверен - SMTP означает простой протокол передачи почты, тогда как sendmail - это программная часть для отправки почты с использованием этого протокола.
Используйте sendmail.
Они оба будут работать нормально. Action Mailer поддерживает оба.
Я успешно использовал SMTP в нескольких проектах. Мне казалось, что это немного более «стандартно», но я могу ошибаться
Я не использовал sendmail. Меня беспокоит то, что это может быть труднее настроить в среде разработки, если вы не разрабатываете непосредственно в Unix / Linux. Если вы можете напрямую общаться с любым SMTP-сервером - даже с удаленным, - вам нужно будет установить sendmail на рельсовой машине, чтобы он заработал.
Основная проблема, с которой я сталкиваюсь с электронной почтой, - это асинхронная отправка сообщений. Без локального SMTP-сервера локальный экземпляр sendmail будет более производительным.
В любом случае, если вы решите, что выбрали неверный вариант, переключиться будет довольно просто.
локальный экземпляр sendmail будет более производительным.В любом случае, если вы решите, что выбрали неверный вариант, переключиться будет довольно просто.
локальный экземпляр sendmail будет более производительным.В любом случае, если вы решите, что выбрали неверный вариант, переключиться будет довольно просто.