【问题标题】:Using telnet command in script for send mail在脚本中使用 telnet 命令发送邮件
【发布时间】:2019-10-05 11:47:34
【问题描述】:

我想通过 Centos7 中的命令发送电子邮件。我对这个问题使用了“telnet”命令,如下所示:

I touch example.sh file and save these command inside it :
echo "open mail.test.com 25"
sleep 3
echo "mail from:sender@test.com"
echo "rcpt to:receiver@test.com"
echo "data"
echo "hello"
echo "."
sleep 3  

并使用此命令./example.sh | telnet
但它不起作用

你能帮帮我吗 谢谢

【问题讨论】:

  • 为什么不使用像sendmail(1)这样的实际基于命令行的电子邮件程序?

标签: bash shell telnet


【解决方案1】:

telnet专为交互式使用而设计。使用netcatncatncsocat 或该系列的任何其他工具。

例子:

./example.sh | ncat mail.test.com 25 

因此你必须编辑你的脚本:

echo "mail from:sender@test.com"
echo "rcpt to:receiver@test.com"
echo "data"
echo "hello"
echo "."
sleep 3  

最后一个sleep 3 很重要,它可以给ncat 足够的时间来处理结果。

顺便说一句,我什么都没测试(只是写下来)

【讨论】:

  • 当我运行'./example.sh | ncat mail.test.com 25 ' 我遇到这个错误:“554 SMTP 同步错误”
  • 那么很可能是时间错误(可能是:不要在提问前发送答案)。使用更多sleep。但更好的是使用socat 将标准输入和标准输出重定向到脚本。阅读man socat了解详情。
  • 我用了更多的睡眠时间 40 秒,它现在可以工作了。谢谢
  • 除了短睡眠,使用telnet时,完成后需要使用echo "QUIT"断开telnet连接
猜你喜欢
  • 2014-11-02
  • 2017-04-13
  • 2013-07-07
  • 2018-12-13
  • 2018-02-15
  • 2015-03-05
  • 2019-08-17
  • 2012-03-14
  • 2011-09-12
相关资源
最近更新 更多