Connect to SMTP (SSL or TLS) using Python
When using SSL, you need to connect to port 465 instead of port 587. If you use STARTTLS, you still need to use ssl.wrap_socket
, you just do it later - specifically, after receiving the 220
response to the STARTTLS
command. After doing STARTTLS
, you're supposed to do HELO
again, since the server is supposed to forget anything that happened before the STARTTLS
.
In either case, the servers at smtp.google.com ports 465 and 587 still won't return a 250
response to the MAIL
command, since they require that you are authenticated before you send mail. You'll get a 530
response instead. You'll need to use the AUTH
command with your gmail.com credentials to authenticate before you can use MAIL
successfully on those servers.
If you don't want to authenticate, and depending on the details of what you need to do, you could try using port 25 of the server found in gmail.com's MX record. At the moment, the server is gmail-smtp-in.l.google.com and supports STARTTLS.