Не удается отправить письмо через Python - PullRequest
1 голос
/ 04 октября 2019

Я пытаюсь отправить электронное письмо через python, используя SMTP gmail, но получаю сообщение об ошибке:

Код:

import smtplib

FROM = "mail1@gmail.com"
TO = "mail2@gmail.com"

message = "Hello"
# Send the mail

server = smtplib.SMTP('smtp.gmail.com', 465)
server.ehlo()
server.starttls()
server.login('mail1@gmail.com', 'password')
server.sendmail(FROM, TO, message)
server.quit()

Ответ:

server = smtplib.SMTP('smtp.gmail.com', 465)
  File "C:\Python37\lib\smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "C:\Python37\lib\smtplib.py", line 338, in connect
    (code, msg) = self.getreply()
  File "C:\Python37\lib\smtplib.py", line 394, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

1 Ответ

0 голосов
/ 04 октября 2019

В соответствии с примером в документации по Python https://docs.python.org/3/library/smtplib.html

в вашем коде отсутствуют заголовки «From: and To:»

import smtplib

def prompt(prompt):
    return input(prompt).strip()

fromaddr = prompt("From: ")
toaddrs  = prompt("To: ").split()
print("Enter message, end with ^D (Unix) or ^Z (Windows):")

# Add the From: and To: headers at the start!
msg = ("From: %s\r\nTo: %s\r\n\r\n"
       % (fromaddr, ", ".join(toaddrs)))
while True:
    try:
        line = input()
    except EOFError:
        break
    if not line:
        break
    msg = msg + line

print("Message length is", len(msg))
server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

, запустите приведенный выше пример и измените его в своем кодевывешенным.

...