sever = smtplib.SMTP_SSL( ‘smtp.exmail.qq.com‘, 465) 运行异常,不能发邮件
python邮件发送
·
步骤概述
为了解决“Python发送QQ邮件连不上邮件服务器”的问题,提示:“连接超时: _ssl.c:993: The handshake operation timed out”
首先需要了解整个发送邮件的流程,然后逐步进行教学。下面是发送QQ邮件的流程图:
步骤 操作
| 1 | 导入smtplib库 |
|---|---|
| 2 | 连接QQ邮件服务器 |
| 3 | 登录QQ邮箱 |
| 4 | 编写邮件内容 |
| 5 | 发送邮件 |
| 6 | 退出连接 |
具体步骤及代码示例
- 导入smtplib库
首先,我们需要导入smtplib库,该库是用来发送邮件的关键库。
import smtplib
- 连接QQ邮件服务器
在接下来,我们需要连接QQ邮件服务器,QQ邮箱的SMTP服务器地址为:smtp.exmail.qq.com,端口为465。
smtp_server = 'smtp.qq.com'
server = smtplib.SMTP_SSL('smtp.exmail.qq.com', 465, timeout=10) # 使用SSL协议连接
- 登录QQ邮箱 在连接成功后,需要登录QQ邮箱,输入你的QQ邮箱和授权码(授权码是用来代替QQ邮箱密码的),示例中使用的是授权码。
# 登录QQ邮箱
email = 'your_email@qq.com' # 修改为你的QQ邮箱
password = 'your_password_or_auth_code' # 修改为你的QQ邮箱授权码
server.login(email, password)
- 编写邮件内容
接下来,我们可以编写邮件的内容,包括收件人、主题和正文。
# 编写邮件内容
from email.mime.text import MIMEText
from email.header import Header
msg = MIMEText('这是一封Python发送的邮件', 'plain', 'utf-8')
msg['From'] = email
msg['To'] = 'recipient@qq.com' # 修改为收件人的邮箱
msg['Subject'] = Header('Python邮件', 'utf-8').encode()
- 发送邮件
然后,我们使用sendmail方法发送邮件。
# 发送邮件
server.sendmail(email, ['recipient@qq.com'], msg.as_string())
- 退出连接
最后,发送完邮件后,记得退出连接。
# 退出连接
server.quit()
其实以前都可以正常使用,今天突然不能运行,直接奔溃了
但是
server = smtplib.SMTP( 'smtp.exmail.qq.com')
是可以正常使用的。
代码如下: 可发送邮件,附件内容,可根据情况在添加
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.utils import COMMASPACE
mail_host = 'smtp.exmail.qq.com'
mail_user= 'xxj@***.com.cn'
mail_pass = '*****'
sender = 'xxj@***.com.cn'
tolist = ['xxj@***.com.cn']
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = sender
msg['To'] = COMMASPACE.join(tolist)
msg['Subject'] = Header('Python SMTP 邮件测试', 'utf-8')
sever = smtplib.SMTP('smtp.exmail.qq.com')
# sever = smtplib.SMTP_SSL(self.mail_host, 465)
result = sever.login(mail_user, mail_pass)
sever.sendmail(sender, tolist , msg.as_string())
print('finish')
sever.quit()
发送结果如下:

更多推荐
所有评论(0)