У меня есть сценарий bash, который создает файл, и я хотел бы отправить электронное письмо в конце через telnet. Однако иногда это исполняется, а иногда и не будет.
Команда в конце
cat tempfile | telnet mail.domain.com 25
На получающем сервере я вижу в mail.log следующую ошибку, когда она терпит неудачу:
improper command pipelining after EHLO from domain.com ....etc
Тот же скрипт отлично работает, если вместо mail.domain.com я запускаю сеанс telnet в localhost, поэтому я уверен, что формат файла в порядке, а остальная часть скрипта bash тоже работает.
Я также пытался использовать стандартное перенаправление вместо канала
telnet mail.domain.com 25 < tempfile
Но опять-таки результат иногда бывает хорошо, иногда нет. Я думаю, что должна быть небольшая задержка между перенаправлением и командой сеанса telnet, чтобы вход был предоставлен после того, как сеанс telnet был установлен и получен ответ, но я не знаю, как это сделать. Я пробовал использовать команду sleep между трубами и перенаправлением, и это не сработает, потому что тогда вход перенаправляется на команду sleep.
e.g. cat tempfile | telnet mail.domain.com 25 & sleep 1
Сужение в том, что я должен сделать это в сценарии bash. Является ли это возможным? Кроме того, я не знаю, имело ли значение какое-либо значение, но сценарий, используемый для работы между серверами в debian, сжимается с установкой postfix/courier, и теперь принимающая сторона настроена с debian wheezy и postfix/dovecot.
Заранее спасибо за помощь