smtp = smtplib.SMTP(主机)> (mail.host)?

时间:2016-07-07 12:26:29

标签: python smtp

我有一个扫描脚本,目前可以通过连接到SMTP服务器,打印结果并移动到列表中的下一个服务器来工作。这是第一个连接代码:

def sendchk(listindex, host, user, password):   # seperated function for checking
try:
    smtp = smtplib.SMTP(host)
    smtp.login(user, password)
    code = smtp.ehlo()[0]

失败后“除了”:

smtp.quit()
except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg:
    print "[-] Login Failed:", host, user, password
    pass

我试图让它在同一主机上重复相同的代码,添加一个子域。 “邮件。”我认为这样可行:

smtp.quit()
except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg:
    print "[-] Login Failed:", host, user, password
    sub1 = 'mail.'
    host2 = '{0}@{1}'.format(sub1, host)
    smtp = smtplib.SMTP(host2)

但它堵塞,说服务器列表中存在问题。 在这里向主机注入前缀的更好方法是什么?

1 个答案:

答案 0 :(得分:0)

未经测试:如果 sub1 是“mail”。并且主机是“myhost.com”,然后'{0}@{1}'.format(sub1, host)将生成 mail。@ myhost.com 。这真的是你的子域名吗?我想它应该是 mail.myhost.com 。如果是这样,那么在格式化字符串中删除“@”。