Python自动发送邮件提示:smtplib.SMTPServerDisconnected: please run connect() first
时间: 2024-05-05 08:22:24 浏览: 203
这个错误通常是因为你没有在发送邮件之前连接到邮件服务器。在使用 smtplib 发送邮件时,你需要先使用 `smtplib.SMTP()` 方法连接到邮件服务器,然后再使用 `login()` 方法进行登录,最后才能使用 `sendmail()` 方法发送邮件。
下面是一个简单的示例代码,你可以参考一下:
```
import smtplib
from email.mime.text import MIMEText
# 邮件服务器地址和端口号
mail_host = 'smtp.xxx.com'
mail_port = 465
# 发件人邮箱地址和密码
mail_user = 'sender@example.com'
mail_password = 'password'
# 收件人邮箱地址
recipients = ['recipient@example.com']
# 邮件内容
message = MIMEText('这是一封测试邮件。')
message['Subject'] = '测试邮件'
message['From'] = mail_user
message['To'] = ','.join(recipients)
# 连接邮件服务器并登录
smtp_obj = smtplib.SMTP_SSL(mail_host, mail_port)
smtp_obj.login(mail_user, mail_password)
# 发送邮件
smtp_obj.sendmail(mail_user, recipients, message.as_string())
# 断开连接
smtp_obj.quit()
```
在上面的代码中,我们首先定义了邮件服务器的地址、端口、发件人邮箱地址和密码,以及收件人邮箱地址。然后创建了一封包含邮件内容的 MIMEText 对象,并设置了邮件的主题、发件人和收件人。接着使用 `smtplib.SMTP_SSL()` 方法连接到邮件服务器,并使用 `login()` 方法登录。最后使用 `sendmail()` 方法发送邮件,并使用 `quit()` 方法断开连接。
如果你仍然遇到 `smtplib.SMTPServerDisconnected: please run connect() first` 错误,可能是由于连接超时或网络问题造成的。你可以尝试增加连接超时时间或检查网络连接是否正常。
阅读全文