怎么使用python中的smtp发送一个附件
时间: 2024-03-27 18:39:20 浏览: 19
使用 Python 的 smtplib 和 email 模块可以实现在邮件中添加附件。以下是一个简单的示例代码:
```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
# 邮件相关信息
smtp_server = 'SMTP服务器地址'
smtp_port = 465 # 邮件服务器端口号
username = '发件人邮箱账号'
password = '发件人邮箱密码'
sender = '发件人邮箱地址'
receiver = '收件人邮箱地址'
subject = '邮件主题'
# 构建邮件
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = subject
# 添加正文
body = '这是一封带附件的邮件。'
msg.attach(MIMEText(body, 'plain', 'utf-8'))
# 添加附件
with open('附件路径', 'rb') as f:
attachment = MIMEApplication(f.read())
attachment.add_header('Content-Disposition', 'attachment', filename='附件名称')
msg.attach(attachment)
# 发送邮件
smtp = smtplib.SMTP_SSL(smtp_server, smtp_port)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
```
注意,此代码仅适用于发送单个附件。如果要发送多个附件,需要在 msg.attach() 方法中添加多个 MIMEApplication 对象。另外,如果要发送带有图片等嵌入式资源的邮件,需要在正文中使用 HTML 格式,并在 HTML 中嵌入图片等资源。