В качестве дешевого обходного пути на многих серверах, у которых нет команды mail
, был написан сценарий, который выводит команды SMTP в сеанс telnet. Соответствующая часть скрипта выглядит так
telnet mailserver 25 << EOF
EHLO $HOST
MAIL FROM: root@$HOST
(and so on)
EOF
Это периодически завершается сбоем, когда "соединение закрыто удаленным хостом". tcpdump
из неисправной сессии подтверждает , что почтовый сервер Postfix немедленно закрыть соединение после отправки 220
приветственного сообщения. Таким образом, ни одно из перенаправления ввода не сделало это по проводу.
До сих пор я не смог определить условия сбоя, но я могу подтвердить, что использование nc
(netcat) работает безупречно, каждый раз.
Ряд вопросов на этом сайте и Stack Overflow непреклонны, что nc
- правильный инструмент для этой работы. Мне интересно, почему это так.
- Почему сбой прерывистый?
- Почему почтовый сервер зависает, прежде чем по проводной линии отправляется одна строка ввода от перенаправленного?
- Почему
telnet
ломается, аnetcat
нет?