【问题标题】:Time limit for send data with Tcl expect使用 Tcl expect 发送数据的时间限制
【发布时间】:2014-04-24 12:51:15
【问题描述】:

我编写了两个使用 Netcat 和 Telent 发送电子邮件的期望脚本。 使用这两个脚本,如果数据丢失,与 smtp 服务器的连接将断开 尺寸太长(超过 100k)。我想这是超时的问题,因为 如果我的连接速度非常快并且我的脚本设法发送所有数据 在不到 2-3 秒的时间内,脚本成功运行。

所以我想知道发送命令是否有时间/大小限制以及更改此限制的方法。

【问题讨论】:

  • 电子邮件大小为 100kb 的情况并不少见,2-3 秒似乎不足以导致超时。您是否可能超过 SMTP 的最大行长度,即 1000 个字符(根据 RFC821)。遥控器只是断开连接,还是先发送错误消息?如果它发送和错误消息,它是什么?
  • 它实际上并没有发送任何错误信息。终端显示数据传输被截断,等待几秒钟,然后断开连接和脚本。奇怪的是,如果我用非常快的连接(然后使用相同的内容)做同样的事情,脚本会成功结束并发送邮件。
  • 如果我在正常速度的连接上多次启动脚本,它总是会在内容的不同部分阻塞。此外,如果我尝试通过 Telnet 手动发送电子邮件,它也会在某些部分数据处冻结,但如果我按 Enter,它会继续发送数据,直到发送消息为止。
  • 只有一台远程主机会发生这种情况,还是多台远程主机会发生这种情况?
  • 到目前为止我尝试过的每一个远程主机都会发生这种情况。另一方面,如果从命令行使用 Netcat (nc smpt.myserver.com 25

标签: smtp send expect


【解决方案1】:

我找到了解决方案。 这是一个非常愚蠢的错误。在我的脚本中,我只希望数据结尾为“250”,并且 交货接受。但是附件是用 base64 编码的,并且包含数字数据 通常是 250 倍。 所以我只需要在我的脚本中将“250”更改为“250”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2012-10-27
    相关资源
    最近更新 更多