UNIX: отправка почты с использованием SMTP-сервера - PullRequest
0 голосов
/ 19 ноября 2009

Я хотел бы отправить электронное письмо через удаленный SMTP-сервер. Как это может быть сделано? Я буду отправлять письмо из скрипта оболочки bash.

Я использую Unix-машину. uname -a возвращает:

Linux linux 2.4.21 BrandZ fake linux i686 athlon i386 GNU/Linux

Ответы [ 3 ]

2 голосов
/ 19 ноября 2009

Обращение к удаленному SMTP-серверу напрямую, как правило, не так. Что, например, если сервер временно недоступен?

Более простой способ - запустить локальный почтовый сервер, такой как postfix, exim или qmail, и настроить его для отправки почты через удаленный сервер. Тогда вы можете просто использовать командную строку sendmail для отправки электронной почты.

В postfix на Ubuntu я помещаю следующее в master.cf:

relayhost = [smtp.my-isp.com]
smtp_generic_maps = hash:/etc/postfix/generic

Вам нужна последняя строка, если почтовый сервер вашего провайдера требует, чтобы вся исходящая почта исходила из you@your-isp.com. Тогда вам также понадобится / etc / postfix / generic:

youruser@localhost you@your-isp.com

При необходимости добавьте другие варианты (например, youruser@yourbox.yourdomain).

1 голос
/ 19 ноября 2009

Команда mailx может использоваться для отправки электронной почты не в интерактивном режиме, но классическая реализация общается с местным почтовым транспортным агентом. Есть простые MTA, которые будут просто отправлять электронную почту через удаленный SMTP-сервер, и не будет принимать местную электронную почту.

Другое решение заключается в использовании heirloom-mailx, (ранее известный как nail я думаю) который поддерживает прямую связь с SMTP-сервером вместо использования локального MTA. Например, вы можете вызвать его следующим образом:

heirloom-mailx -S smtp=smtp.your-isp.com \
               -S from=you@your-isp.com \
               -s "subject" <<EOM
Hello, $name,
This is an automatic reminder, sent out once a month, ...
[the rest of your message]
EOM
0 голосов
/ 23 ноября 2009

Я не уверен, что он все еще работает ... но вы можете использовать telnet. по крайней мере, вы должны быть в состоянии написать bashscript, используя его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...