Невозможно войти в систему с помощью smtp

#python #outlook #smtp #gmail

#python #outlook #smtp #gmail

Вопрос:

Я ввожу правильный адрес электронной почты / пароль, но он по-прежнему не может войти в эту почту / не может отправить сообщение с этой почтой, поэтому он выдает неверное имя пользователя или пароль, которые вы ввели, может кто-нибудь помочь мне определить проблему и предложить хорошее решение, пожалуйста.

Спасибо

 def Emailspam():
print("Choose your email provider")
print("1. Gmail")
print("2. Outlook")
provider = input(CRED   ">>> "   CEND)
os.system("cls")

useremail = input("EMAIL : ")
userpass = input("PASSWORD : ")
os.system("cls")

victimemail = input("Victim email : ")
Content = input('Message : ')
Number = int(input("Number of mail to send : "))
os.system("cls")

#https://www.androidauthority.com/gmail-smtp-settings-801100/#:~:text=SMTP server address: smtp.gmail,SMTP port (SSL): 465
if provider == ("1"):
    smtp_server = 'smtp.gmail.com'
    port = 587
#https://support.microsoft.com/en-us/office/pop-imap-and-smtp-settings-for-outlook-com-d088b986-291d-42b8-9564-9c414e2aa040
elif provider == ("2"):
    smtp_server = 'smtp.office365.com'
    port = 587

else:
    print("Invalid choice")
    skrr = input("press enter to close")
    exit()

try:
    server = smtplib.SMTP(smtp_server,port)
    server.login(useremail,userpass)

    for i in range(0,Number):
        print("Number of Message Sent to "   victimemail   ":" , i 1)
        server.starttls()
        server.ehlo()
        server.sendmail(useremail,victimemail,Content)
        time.sleep(1)

    server.close()

except Exception as e:
    print('The username or password you entered is incorrect.')
    p = input("Press enter to close")
    exit()
 

Комментарии:

1. Вы получаете сообщение, что имя пользователя или пароль, которые вы ввели, неверны, потому что это то, что ваш код говорит делать. Реальная причина ошибки в e . Попробуйте вместо этого напечатать это в своем сообщении об ошибке.

2. Он сказал, что расширение аутентификации SMTP не поддерживается сервером

3. Итак, теперь вы знаете, что существует проблема с отказом сервера от вашего соединения, которая не имеет ничего общего с неправильными учетными данными.

4. понял, большое вам спасибо

Ответ №1:

Попробуйте создать пароль приложения, а затем посмотрите, работает ли он. Для создания пароля приложения перейдите в свою учетную запись и перейдите в настройки конфиденциальности, чтобы настроить его. Кроме того, попробуйте добавить:

 server.ehlo()
 

после:

 server.starttls()
 

Комментарии:

1. Я отредактировал код, и он по-прежнему выдает ту же проблему, пожалуйста, проверьте. Я также отключил доступ к приложению less security из своей учетной записи gmail.

2. Вы пытались создать «пароль приложения»?

Ответ №2:

использование server.connect и перемещение нескольких вещей за пределы цикла исправит это

  def Emailspam():
        print("Choose your email provider")
        print("1. Gmail")
        print("2. Outlook")
        provider = input(CRED   ">>> "   CEND)
        os.system("cls")
    
        useremail = input("EMAIL : ")
        userpass = input("PASSWORD : ")
        os.system("cls")
    
        victimemail = input("Victim email : ")
        Content = input('Message : ')
        Number = int(input("Number of mail to send : "))
        os.system("cls")
        
        #https://www.androidauthority.com/gmail-smtp-settings-801100/#:~:text=SMTP server address: smtp.gmail,SMTP port (SSL): 465
        if provider == ("1"):
            smtp_server = 'smtp.gmail.com'
            port = 587
        #https://support.microsoft.com/en-us/office/pop-imap-and-smtp-settings-for-outlook-com-d088b986-291d-42b8-9564-9c414e2aa040
        elif provider == ("2"):
            smtp_server = 'smtp.office365.com'
            port = 587
        
        else:
            print("Invalid choice")
            skrr = input("press enter to close")
            exit()
    
        try:
            server = smtplib.SMTP(smtp_server,port)
            server.connect(smtp_server,port)
            server.ehlo()
            server.starttls()
            server.login(useremail,userpass)
    
    
            for i in range(0,Number):
                print("Number of Message Sent to "   victimemail   ":" , i 1)
                server.sendmail(useremail,victimemail,Content)
                time.sleep(1)
    
            print("Finished")
            server.close()
    
        except Exception as e:
            print(e)
            print('The username or password you entered is incorrect.')
            p = input("Press enter to close")
            exit()
 

Ответ №3:

Google повысил свою безопасность. Таким образом, вы не сможете войти в любую учетную запись gmail, если вы не отключили доступ к приложению less security из своей учетной записи gmail. Для этого сначала нажмите управление учетной записью Google> Вкладка Безопасность> Менее безопасный доступ к приложению> Выкл . Это статья для it: Как отключить менее безопасный доступ к приложениям в gmail

Другое дело, что вы не должны хранить код входа в свой цикл for. Вы должны войти в систему вне цикла for. Таким образом, вы будете входить в систему один раз и отправлять электронную почту с этой учетной записью много раз.

Надеюсь, что это поможет!

Вот рабочий код:

 def Emailspam():
    print("Choose your email provider")
    print("1. Gmail")
    print("2. Outlook")
    provider = input(CRED   ">>> "   CEND)
    os.system("cls")

    useremail = input("EMAIL : ")
    userpass = input("PASSWORD : ")
    os.system("cls")

    victimemail = input("Victim email : ")
    Content = input('Message : ')
    Number = int(input("Number of mail to send : "))
    os.system("cls")


    if provider == ("1"):
        smtp_server = 'smtp.gmail.com'
        port = 587

    elif provider == ("2"):
        smtp_server = 'smtp.office365.com'
        port = 587

    else:
        print("Invalid choice")
        skrr = input("press enter to close")
        exit()

    try:
        server = smtplib.SMTP(smtp_server,port)
        server.ehlo()
        server.starttls()
        server.login(useremail,userpass)

        for i in range(0,Number):
            print("Number of Message Sent to "   victimemail   ":" , i 1)
            server.sendmail(useremail,victimemail,Content)
            time.sleep(1)

        server.close()

    except Exception as e:
        print('The username or password you entered is incorrect.')
        p = input("Press enter to close")
        exit()
 

Комментарии:

1. О, да, я держал это в курсе, спасибо, что довели это до меня.

2. Я отредактировал код, и он по-прежнему выдает ту же проблему, пожалуйста, проверьте. Я также отключил доступ к приложению less security из своей учетной записи gmail.

3. Я загрузил код. Вам необходимо запустить tls для входа в систему. Теперь код работает отлично.