The port for SSL
is 465 and not 587, however when I used SSL
the mail arrived to the junk mail.
For me the thing that worked was to use TLS
over regular SMTP
instead of SMTP_SSL
.
Note that this is a secure method as TLS
is also a cryptographic protocol (like SSL).
import smtplib, ssl
port = 587 # For starttls
smtp_server = "smtp.gmail.com"
sender_email = "my@gmail.com"
receiver_email = "your@gmail.com"
password = input("Type your password and press enter:")
message = """\
Subject: Hi there
This message is sent from Python."""
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
provided thanks to the real python tutorial.