python +http方式自动发送邮件,可发送附件、正文中带图片
时间: 2024-01-22 18:03:53 浏览: 86
python实现发送邮件及附件功能
您可以使用 Python 的 smtplib 和 email 模块来实现发送带有附件和正文图片的邮件。
以下是一个示例代码:
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.base import MIMEBase
from email import encoders
# 设置发件人、收件人、主题、正文
from_addr = 'your_email_address'
to_addr = 'recipient_email_address'
subject = 'Email Subject'
body = 'Email Body'
# 创建一个多部分的邮件对象
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject
# 添加正文
msg.attach(MIMEText(body, 'plain'))
# 添加图片
with open('image.jpg', 'rb') as f:
img_data = f.read()
img = MIMEImage(img_data, name='image.jpg')
msg.attach(img)
# 添加附件
filename = 'document.pdf'
with open(filename, 'rb') as f:
attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(f.read())
encoders.encode_base64(attachment)
attachment.add_header('Content-Disposition', 'attachment', filename=filename)
msg.attach(attachment)
# 发送邮件
smtp_server = 'smtp.gmail.com' # 邮件服务器地址
smtp_port = 587 # 邮件服务器端口号
username = 'your_email_address' # 邮箱用户名
password = 'your_email_password' # 邮箱密码
# 创建 SMTP 会话
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # 开启 TLS 加密
server.login(username, password) # 登录邮箱
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭 SMTP 会话
server.quit()
```
请注意,您需要将 `your_email_address` 和 `your_email_password` 替换为您自己的邮箱地址和密码,并将 `recipient_email_address` 替换为收件人的邮箱地址。此外,您还需要将 `smtp_server` 和 `smtp_port` 更改为您的邮件服务器地址和端口号,并更改图片和附件的文件名和路径。
阅读全文