2009-11-19 6 views

ответ

2

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

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

В постфиксе на Ubuntu, я поставил следующий в master.cf:

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

Вам нужна последняя строка в случае, если ваш почтовый сервер провайдера требует, чтобы вся исходящая почта происходит от [email protected]. Тогда вы будете также нуждаться/и т.д./постфикса/общее как это:

[email protected] [email protected] 

Добавить другие варианты (например [email protected]) по мере необходимости.

1

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

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

heirloom-mailx -S smtp=smtp.your-isp.com \ 
       -S [email protected] \ 
       -s "subject" <<EOM 
Hello, $name, 
This is an automatic reminder, sent out once a month, ... 
[the rest of your message] 
EOM 
0

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