gab*_*tzi 14 linux email bash telnet
我有一个创建文件的bash脚本,我想通过telnet发送电子邮件.然而,有时它会执行,有时它不会执行.
最后的命令是
cat tempfile | telnet mail.domain.com 25
Run Code Online (Sandbox Code Playgroud)
在接收服务器上,我在mail.log中看到失败时出现以下错误:
improper command pipelining after EHLO from domain.com ....etc
Run Code Online (Sandbox Code Playgroud)
如果不是mail.domain.com,那么相同的脚本可以正常工作.我在localhost中启动telnet会话,所以我很确定文件格式是否正常,其余的bash脚本也正常工作.
我也尝试过使用标准重定向而不是管道
telnet mail.domain.com 25 < tempfile
Run Code Online (Sandbox Code Playgroud)
但有时候结果有时是好的.我认为重定向和telnet会话命令之间需要有一个小的延迟,以便在建立telnet会话并给出响应后给出输入,但我不知道如何做到这一点.我尝试在管道和重定向之间使用sleep命令,它可能无法工作,因为这时输入被重定向到sleep命令.
e.g. cat tempfile | telnet mail.domain.com 25 & sleep 1
Run Code Online (Sandbox Code Playgroud)
限制是我必须在bash脚本中执行此操作.可能吗?此外,我不知道它是否有任何重要性,但脚本用于在debian挤压服务器之间工作与后缀/快递设置,现在接收端设置与debian wheezy和postfix/dovecot.
在此先感谢您的帮助
小智 23
你可以尝试类似的东西:
(echo -n; sleep 5; cat tempfile) | mail.domain.com 25
Run Code Online (Sandbox Code Playgroud)
打开连接并写入任何内容,等待5秒钟然后写下剩下的内容.
归档时间: |
|
查看次数: |
10177 次 |
最近记录: |