Проблема при попытке отправить электронную почту через Python - PullRequest
1 голос
/ 21 марта 2020

ОС: MacCatalinva V10.15.3

Python: 3.7.7

PiP: 20.0.2

Эй, я новичок в кодировании, поэтому я Я не уверен, что это на самом деле означает.

Я пытаюсь отправлять электронные письма через Python через Gmail, я настроил свой аккаунт на принятие "Менее безопасного доступа к приложениям" и выполнил действия, описанные в это руководство , но все, что я получаю, это следующее:

`Не удалось проверить сертификат [SSL: CERTIFICATE_VERIFY_FAILED]: невозможно получить сертификат локального эмитента (_ssl. c: 1076) Traceback (последний вызов последнее): файл "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py", строка 354, в отправке self.sock.sendall (s) OSError: [Errno 9] Неверный дескриптор файла

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): файл "/Users/mymac/Desktop/Test2.py", строка 34, в файле server.quit () "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py", строка 984, в quit res = self.docmd ( "уволиться") Файл "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/smtplib.py", строка 420, в файле docmd self.putcmd (cmd, args) "/ Library / Frameworks / Python .framework / Versions / 3.7 / lib / python3 .7 / smtplib.py ", строка 367, в файле putcmd self.send (str)" /Library/Frameworks/Python.framework/Versions/3.7 /lib/python3.7/smtplib.py ", строка 357, при отправке поднять SMTPServerDisconnected ('Сервер не подключен') smtplib.SMTPServerDisconnected: Сервер не подключен`

И это мой код :

import smtplib
import ssl


sender_email = "myemailadress@gmail.com"
receiver_email = "myadress@hotmail.com"
message = """\
Subject: Hi there

This message is sent from Python."""

# Send email here

smtp_server = "smtp.gmail.com"
port = 587  # For starttls
sender_email = "myemailadress@gmail.com"
password = input("Type your password and press enter: ")

# Create a secure SSL context
context = ssl.create_default_context()

# Try to log in to server and send email
try:
    server = smtplib.SMTP(smtp_server, port)
    server.ehlo()  # Can be omitted
    server.starttls(context=context)  # Secure the connection
    server.ehlo()  # Can be omitted
    server.login(sender_email, password)
    # TODO: Send email here
except Exception as e:
    # Print any error messages to stdout
    print(e)
finally:
    server.quit()

1 Ответ

0 голосов
/ 21 марта 2020

1) После этой строки:

server.login(sender_email, password)

обязательно отправьте сообщение, которое у вас есть. Для этого:

server.sendmail(sender_email,receiver_email,message)    

вот и все, я надеюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...