python里面怎么加QQ邮箱发送文件
时间: 2025-06-29 15:22:30 浏览: 7
### 使用Python通过QQ邮箱发送附件
为了使用Python通过QQ邮箱发送带有附件的电子邮件,需要遵循几个关键步骤。准备工作涉及配置环境以及准备必要的库和模块。
#### 配置SMTP服务
首先,需确保已启用QQ邮箱的SMTP服务,并获得相应的授权码[^4]。这一步骤对于成功连接至服务器至关重要。具体操作是在QQ邮箱设置中的账户选项里开启SMTP功能并记录下生成的授权码。
#### 编写Python脚本
下面是一个完整的Python代码示例,用于展示如何构建一封包含附件的邮件并通过QQ邮箱发出:
```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
def send_email_with_attachment():
sender = '[email protected]' # 发件人的qq号
receivers = ['[email protected]'] # 收件人列表
msg = MIMEMultipart()
# 构建邮件头部信息
msg['From'] = sender
msg['To'] = ','.join(receivers)
msg['Subject'] = '主题:测试发送带附件邮件'
body = "这是正文内容"
msg.attach(MIMEText(body, 'plain'))
# 添加附件部分
filename = r"D:\学习资料\Python\test\zhangandlu.jpg"
attachment = open(filename, "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header(
'Content-Disposition',
f'attachment; filename= {filename}',
)
msg.attach(part)
try:
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # QQ邮箱 SMTP服务器地址及端口
server.login(sender, 'your_authorization_code') # 登录名和密码(注意这里不是登录密码而是前面提到过的授权码)
text = msg.as_string()
server.sendmail(sender, receivers, text)
print("邮件发送成功")
except Exception as e:
print(f"失败原因:{e}")
finally:
server.quit()
send_email_with_attachment()
```
此段代码实现了创建一个多部件消息对象`MIMEMultipart()`,其中包含了纯文本形式的消息体和作为二进制流加载的一个图像文件作为附件。最后利用`smtplib.SMTP_SSL()`方法建立安全连接并向指定收件者发送该封邮件[^1][^3]。
阅读全文
相关推荐
















