поднять SMTPServerDisconnected («Соединение неожиданно закрыто»)

новый пробелем с подключением smtlib

пример

все smtp в блоке / закрытии / отключении, когда я пытаюсь отправить электронное письмо с помощью python с gmail или частным доменом gmail

код

import pandas as pd
import smtplib

e = pd.read_excel("xxx")
emails = e['xxx'].values
server = smtplib.SMTP("smtp.gmail.com", 587)
server.login = "xxx"
server.password = "xxx"
server.starttls()
msg = "Hello this is a email form python"
subject = "Hello world"
body = "Subject: {}nn{}".format(subject, msg)

for email in emails:
    server.sendmail(server.login, server.password, body)
server.quit()

ошибка

  File "C:Python39libsmtplib.py", line 637, in auth
    (code, resp) = self.docmd("AUTH", mechanism + " " + response)
  File "C:Python39libsmtplib.py", line 427, in docmd
    return self.getreply()
  File "C:Python39libsmtplib.py", line 400, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

1 ответ
1

Чтобы отправить почту через smtp.gmail.com, вам необходимо аутентифицировать ваш SMTP-сеанс. Обычно вы делаете это, вызывая login метод на smtplib.SMTP объект … но вы заменили этот метод строкой, поэтому вы не можете этого сделать, даже если попытаетесь.

Поскольку вы не проходите аутентификацию, Gmail отключает вас.

Кроме того, похоже, что вы используете свое имя пользователя и пароль, где sendmail ожидает адреса электронной почты «от» и «до».

Вероятно, вы хотите, чтобы ваш код выглядел примерно так:

import pandas as pd
import smtplib

e = pd.read_excel("xxx")
emails = e['xxx'].values

server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("your_gmail_account_here", "your_password_here")

msg = "Hello this is a email from python"
subject = "Hello world"
body = "Subject: {}nn{}".format(subject, msg)

for email in emails:
    server.sendmail("you@your_email_address", email, body)
server.quit()

Это предполагает, что emails на самом деле это список адресов электронной почты. Вам нужно будет ввести здесь информацию (ваше имя пользователя, пароль и адрес электронной почты), прежде чем это будет работать правильно.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *