#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 для входа в систему. Теперь код работает отлично.