программная отправка писем с сервера Linux - PullRequest
2 голосов
/ 18 февраля 2009

Я хочу отправить одно электронное письмо с сервера Linux. Серверу не нужно получать электронные письма обратно.

Есть ли более простое решение, чем sendmail, только для отправки исходящих писем?

Я бы предпочел использовать Perl для отправки электронного письма.

Ответы [ 7 ]

3 голосов
/ 18 февраля 2009

Вызов /usr/lib/sendmail обычно является предпочтительным методом, поскольку он правильно обрабатывает проблемы с доставкой. Это не означает использование sendmail . Большинство (всех?) Почтовых транспортных систем предоставляют команду, которая просто с именем sendmail и обеспечивает интерфейс, совместимый с оригиналом.

В качестве альтернативы вы можете отправлять сообщения напрямую через SMTP-ретранслятор, используя пакет, такой как Net :: SMTP, но не забудьте правильно исправить проблемы с доставкой.

2 голосов
/ 18 февраля 2009

Я успешно использовал msmtp , т.е. он поддерживает отличную аутентификацию

TJ Luoma сделал хорошую запись об этом на TUAW

2 голосов
/ 18 февраля 2009

Sendmail - не единственный выбор. Вы можете использовать Postfix, Qmail и многие другие

мои Perl-скрипты вызывают команду mailx. чтобы узнать, как его использовать, наберите "man mailx" Однако для этого необходимо настроить исправление MTA.

Или вы можете просто использовать Perl-библиотеку Net :: SMTP и использовать свой SMTP-сервер по выбору

1 голос
/ 21 ноября 2010

Я считаю nullmailer очень полезным решением для описанного сценария. Nullmailer - это заменяющий MTA sendmail / qmail / etc, который работает с фиксированным набором почтовых серверов. Он очень прост в настройке и потребляет мало ресурсов.

Одним из важных преимуществ nullmailer перед другими упомянутыми решениями, такими как mstmp и ssmtp, является то, что он поддерживает очередь сообщений для отправки. Приложение, отправляющее почту, блокируется только на очень короткое время, пока почта находится в очереди (миллисекунды). Отправка почты происходит в контексте другого процесса. Такие решения, как mstmp и ssmtp, не поддерживают очередь электронной почты. Отправка происходит в контексте приложения, тем самым блокируя приложение. Отправка электронного письма таким способом может занять 1-2 секунды или дольше. Во многих случаях это может не быть проблемой, но может стать проблемой, если электронное письмо отправлено веб-приложением.

http://untroubled.org/nullmailer/

0 голосов
/ 18 февраля 2009

Мне нравится создавать gmail или другую бесплатную учетную запись, а затем использовать java mail api в J2EE для отправки сообщений (из вашей новой учетной записи gmail) кому бы то ни было ... Обычно я создаю класс Mailer, который может быть создается с помощью конструктора по умолчанию, а затем отправляет его (String dest, String subj, String body [, Obj attach ... если вы хотите]), а затем в вашем случае вы можете обернуть объект в метод main, чтобы вы могли вызывайте его из другого источника с некоторыми аргументами командной строки или вызывайте из какой-нибудь Java-программы. Если тебе интересно, я пристрелю тебе код.

0 голосов
/ 18 февраля 2009

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

0 голосов
/ 18 февраля 2009

Я знаю, что вы сказали Perl, но простейшая межплатформенная библиотека для отправки электронной почты, которую я использовал, - это smtplib Python. Конечно, стоит посмотреть.

...