Python 使用smtplib库发送电子邮件时出现超时错误

Python 使用smtplib库发送电子邮件时出现超时错误,python,smtplib,connection-timeout,Python,Smtplib,Connection Timeout,这是我的密码: import smtplib connection = smtplib.SMTP("smtp.gmail.com") connection.starttls() connection.login(user="mymail@gmail.com", password="mypassowrd") connection.sendmail(from_addr="mymail@gmail.com", to_ad

这是我的密码:

import smtplib

connection = smtplib.SMTP("smtp.gmail.com")
connection.starttls()
connection.login(user="mymail@gmail.com", password="mypassowrd")
connection.sendmail(from_addr="mymail@gmail.com", to_addrs="recievermail@gmail.com", msg="Hello")
connection.close()
所以我得到了这个错误:

Traceback (most recent call last):
  File "E:\100Days-Python_programs\Day32\Birthday Wisher (Day 32) start\main.py", line 3, in <module>
    connection = smtplib.SMTP("smtp.gmail.com")
  File "C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 253, in __init__
    (code, msg) = self.connect(host, port)
  File "C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 339, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 310, in _get_socket
    return socket.create_connection((host, port), timeout,
  File "C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\socket.py", line 843, in create_connection
    raise err
  File "C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\socket.py", line 831, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

Process finished with exit code 1
回溯(最近一次呼叫最后一次):
文件“E:\100Days-Python\u programs\Day32\Birthday Wisher(Day 32)start\main.py”,第3行,在
connection=smtplib.SMTP(“SMTP.gmail.com”)
文件“C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\smtplib.py”,第253行,在\uuu init中__
(代码,消息)=自连接(主机,端口)
文件“C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\smtplib.py”,第339行,在connect中
self.sock=self.\u获取\u套接字(主机、端口、self.timeout)
文件“C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\smtplib.py”,第310行,位于get套接字中
返回套接字。创建_连接((主机,端口),超时,
文件“C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\socket.py”,第843行,位于create\u connection中
提出错误
文件“C:\Users\HP\AppData\Local\Programs\Python\Python39\lib\socket.py”,第831行,位于create\u connection中
sock.connect(sa)
TimeoutError:[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应
进程已完成,退出代码为1
我打开了不太安全的应用程序访问

我也关闭了所有安全步骤:

我还关闭了防火墙保护。

但什么都没用


所以请有人来帮我。

您需要指定端口。在本例中,
TSL的
587

不知怎的,它是有效的,但我没有深刻的知识来解释为什么

我也有同样的问题,所以有一个解决方案:

connection = smtplib.SMTP("smtp.gmail.com", 587)

这回答了你的问题吗?