Я хочу отправить электронное письмо через удаленный SMTP-сервер. Как это может быть сделано? Я отправлю электронное письмо из сценария оболочки bash.
Я использую unix-машину. uname -a возвращает: Linux linux 2.4.21 BrandZ fake linux i686 athlon i386 GNU / Linux
Спасибо.
На самом деле здесь нет де-факто клиента для этого, большинство людей просто используют свои MTA (почтовые транспортные агенты) для ретрансляции, а затем используют sendmail (1) или mail (1) для вставки почты в очередь своего MTA (либо напрямую, либо через SMTP. порт 25)
Большинство Unix-машин идут с MTA, обычно с одним из Sendmaill, Postfix или Exim.
Постфикс
В postfix вы хотите установить свой релейный хост в /etc/postfix/main.cf (или там, где установлен ваш файл конфигурации main.cf).
relayhost = my.mailrelay.com
Отправить почту
Для sendmail термин называется SMART_HOST, и вы можете определить его в sendmail.mc.
define(`SMART_HOST',`my.mailrelay.com')
Exim
В Exim измените раздел «маршрутизаторы» вашей конфигурации и добавьте
smarthost:
driver = domainlist
transport = remote_smtp
require_files = /etc/exim/smarthost
route_list = "* my.mailrelay.com"
Qmail
Я никогда не видел, чтобы Qmail устанавливался на машину (в основном из-за условий лицензирования DJB), так что, вероятно, это не в вашей ситуации, но мы могли бы также перечислить последний из четырех больших MTA в одном месте.
echo ":my.mailrelay.com" > /var/qmail/control/smtproutes
Ноты*
Некоторые люди могут сказать: используйте сценарий для отправки сообщений на удаленный SMTP-сервер через порт 25/487. Это решение ошибочно. SMTP разработан таким образом, что почтовые серверы могут временно отклонять почту по любой причине. Все SMTP-серверы имеют резервные механизмы, так что сообщения будут повторяться и повторяться. Теперь ваш сценарий мог бы реализовать это, но затем вы идете по пути повторного изобретения колеса. Практически каждая система Linux поставляется с установленным MTA, и их легко установить в Linux и в любой другой системе Unix, с которой я сталкивался. Их настройка может быть пугающей, когда вы начинаете, но электронная почта настолько распространена, что вам нужно изучить это, если вы хотите администрировать Unix-подобные машины.
Если удаленный SMTP-сервер, через который вы ретранслируете, просто разрешает вам ретрансляцию по IP, вышеуказанного должно быть достаточно. Однако возможно, что удаленный SMTP-сервер, через который вы хотите выполнить ретрансляцию, потребует от вас использования аутентификации SMTP и / или SSL / TLS для ретрансляции. В этом случае вам необходимо настроить ваш MTA, чтобы предоставить эти данные.
Если вы хотите отправлять почту только из своей системы и не хотите получать почту с помощью собственного MTA или вам нужна какая-то необычная специальная конфигурация, вы можете также установить один из минимальных MTA, таких как sSMTP, nbsmtp или nullmailer.
Они поставляются с интерфейсом, совместимым с sendmail (/sbin/sendmail
или /usr/sbin/sendmail
) и будет использоваться mail
, mailx
или nail
(или любой другой почтовый клиент CLI) для отправки писем.
Для начала вы можете использовать команду mailx (см. Man mailx), которая может отправлять почту из командной строки.
Чтобы это работало, вам также потребуется установка локального SMTP-сервера, который действует как ретранслятор для внешнего.