Проблемы с отправкой электронной почты через скрипт posix

275
The-0m3n

У меня есть SMTP-сервер для отправки электронной почты через Red Hat 7.2. Если я наберу команды на сервере, почта будет отправлена ​​успешно. Тем не менее, я попытался создать сценарий для автоматической отправки почты, но это не удалось. Мой сценарий:

#!/bin/bash  ( echo "HELO server.com";  echo "MAIL FROM: account@server.com";  echo "RCPT TO: rcptoacc@server.com";  echo "DATA";  echo "From: account@server.com";  echo "To: rcptoacc@server.com";  echo "Subject: Test mail";  echo -e "\n";  echo "Ok.";  echo "Bye";  echo -e "\n\n.";  echo "QUIT";  ) | /usr/bin/telnet smtp_server 25 

Что я делаю неправильно?

1
На сервере вы видите какие-либо доказательства соединения и / или ошибок через сервер? Может случиться так, что все это будет отправлено слишком быстро, и соединение telnet завершится до того, как сервер завершит отправку своего баннера обратно. Ведь SMTP - это диалог с сервером, а не монолог Eric Renouf 7 лет назад 0
Кроме того, bash - это не POSIX и не `echo -e`, так что это не скрипт POSIX Eric Renouf 7 лет назад 1
См. [Этот ответ] (http://stackoverflow.com/a/10001357/4687135), чтобы узнать, как сделать это в чистом виде (хотя определенно не в POSIX) Eric Renouf 7 лет назад 0
Спасибо, Эрик. Сервер выдает: Попытка xxxx .. Подключенный к xxxx Escape-символ '^]. Соединение прервано внешним хостом. Я помещаю сон в каждую строку, но результат тот же. Этот скрипт работает на HP-UX The-0m3n 7 лет назад 0
Есть ли у вас один перед первой строкой, и достаточно ли спит? Это хрупкий путь, но когда я только что попробовал скрипт как есть на почтовом сервере, я пожаловался на то, что клиент отключился после CONNECT, поэтому он никогда не видел диалог Eric Renouf 7 лет назад 0
С ведущими `sleep` и` sleep` после каждой строки, которая является частью разговора, это сработало для меня, хотя я все еще думаю, что вам будет лучше использовать инструмент для разговора по SMTP или сделать это так, как в связанном ответе Eric Renouf 7 лет назад 0
Хорошо, я постараюсь сделать это как связанный ответ. Кстати, скрипт работал, добавляя сон после строки QUIT: `echo" QUIT "; сон 1; ) | / usr / bin / telnet` `Спасибо за совет. DASM The-0m3n 7 лет назад 0

0 ответов на вопрос

Похожие вопросы