微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在bash脚本中的stream水线命令之间插入一个延迟 例如cat file | telnet mail.domain.com 25

我有一个bash脚本来创build一个文件,我想通过telnet在最后发送一封电子邮件。 但有时它会执行,有时不会。

最后的命令是

cat tempfile | telnet mail.domain.com 25

在接收服务器上,我在mail.log中看到以下错误

improper command pipelining after EHLO from domain.com ....etc

如果不是mail.domain.com,我会在localhost启动telnet会话,所以我相当确定文件格式正常,其余的bash脚本也在工作。

DKIM:签名标题存在但无效

如何从Windowsbatch file发送简单的电子邮件

当我在窗口上打开CSV文件增加一个额外的行。 这只有当我发送CSV文件作为电子邮件的附件时才被观察到

如何在Windows上设置应用程序以响应MAPISendMail调用

如何使用mailx重命名附件?

我也尝试使用标准redirect而不是pipe道

telnet mail.domain.com 25 < tempfile

但有时候结果有时还好,有时候不是。 我认为在redirect和telnet会话命令之间需要一个小的延迟,以便在telnet会话build立并给出响应之后给出input,但我不知道该怎么做。 我已经尝试在pipe道和redirect之间使用睡眠命令,它不会工作,可能是因为inputredirect到睡眠命令。

eg cat tempfile | telnet mail.domain.com 25 & sleep 1

限制是我必须在bash脚本中完成。 可能吗? 另外我不知道是否有什么重要的,但脚本用于debian之间的压缩与postfix /快递设置的服务器之间,现在的接收端设置与debian wheezy和postfix / dovecot。

先谢谢您的帮助

多个crontab作业,但只有其中一个不应该发送电子邮件

自动处理电子邮件附件

Mutt不会发送附件

后缀+ Dovecot连接失败的数据库

带有Indy组件的SendEmail

你可以尝试像这样:

(echo -n; sleep 5; cat tempfile) | mail.domain.com 25

打开连接,不写任何东西,等待5秒钟,然后写下剩下的部分。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐