smtp = smtplib.SMTP(хост) > (mail.host)?

У меня есть скрипт сканирования, который в настоящее время работает, подключившись к 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 ответ

Решение

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

Другие вопросы по тегам