如何制作smtlib.SMTP地址同步函数

2024-06-16 11:32:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python编程的新手。我正在编写小型smtp客户端,用于测试POSTFIX smtp服务器的实现。我也使用了python smtplib。下面是代码片段。你知道吗

import smtplib
def smtpTest(serverStr, mode=1):
servername = serverStr
  server = smtplib.SMTP(servername, 25)
try:
  server.set_debuglevel(True)
  server.ehlo()
  # If we can encrypt this session, do it
  if server.has_extn('STARTTLS'):
    server.docmd('STARTTLS\r\n RSET')

finally:
  print "Closing the smtp session ...."
  server.quit()
if __name__ == "__main__":
    print "Closing the session now ..."
smtpTest(<ip address of smtp server>, 1)`

我使用的docmd()应该用于smtp服务器响应。我正在尝试检查“STARTTLS\r\n RSET”命令的smtp服务器行为。你知道吗

回应详情:- 我的期望是,如果smtp服务器有漏洞,应该按顺序给出2个响应代码。一个用于STARTTLS,另一个用于RSET命令。我的观察是,服务器准备好了tls tunnel,然后代码进入finally块以关闭会话。所以我的结论是服务器不易受到STARTTLS的攻击。你知道吗

我的查询:- 如果将命令字符串反转为'RSET\r\n STARTTLS',则会得到2个响应代码。使用重置然后启动tls的反向字符串,quit函数调用将结束会话,并且在客户端发送quit命令后,将显示starttls的命令。我只想在得到服务器的完整响应之后才同步quit的调用。在这种情况下,第一个是RSET,然后是STARTTLS。 任何指点都会很有帮助。你知道吗


Tags: 代码命令服务器客户端ifserversessionsmtp