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

问题描述

这是我的代码

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

我开启了不太安全的应用访问

enter image description here

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

enter image description here

我也关闭了防火墙保护。

但没有任何效果

所以请有人帮助我。

解决方法

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

不知何故它有效,但我没有深厚的知识来解释为什么。

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...