2016-07-07 6 views
0

У меня есть сценарий сканирования, который в настоящее время работает, подключившись к SMTP-серверу, распечатывая результаты и переходя на следующий сервер в списке. Это первый код подключения:smtp = smtplib.SMTP (хост)> (mail.host)?

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) 

Но это замялось, заявив, что в списке серверов есть проблема. Что было бы лучшим способом вставить префикс для хоста здесь?

ответ

0

Без проверки: если под1 является «почтой». и хозяин - «myhost.com», то '{0}@{1}'.format(sub1, host) приведет к почте. @ myhost.com. Это действительно ваше имя поддомена? Я полагаю, что это должно быть mail.myhost.com. Если это так, оставьте «@» в строке форматирования.

+0

А, я не понимал, что @ был буквальным. Я думал, что это связано с струнами. Спасибо, это сработало. – JDerringer