python 发送邮件正文带图片
时间: 2024-10-22 19:05:43 浏览: 17
python3实现带多张图片、附件的邮件发送
在Python中,我们可以使用smtplib和email库来发送邮件,如果需要包含图片,通常会将图片作为附件附在邮件里。以下是一个简单的例子:
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate
from email import encoders
# 定义发件人、收件人和SMTP服务器等信息
sender = 'your_email@example.com'
receiver = 'recipient_email@example.com'
password = 'your_password'
smtp_server = 'smtp.example.com'
# 创建MIME对象
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = COMMASPACE.join(receiver)
msg['Date'] = formatdate(localtime=True)
# 邮件正文
text = MIMEText('这是一封带有图片的邮件', 'plain')
msg.attach(text)
# 添加图片作为附件
with open('image.jpg', 'rb') as f:
image = MIMEBase('image', 'jpeg')
image.set_payload(f.read())
encoders.encode_base64(image)
image.add_header('Content-Disposition', 'attachment', filename='image.jpg')
msg.attach(image)
# 连接SMTP服务器并发送邮件
try:
server = smtplib.SMTP(smtp_server, 587)
server.starttls() # 开启TLS加密
server.login(sender, password)
server.sendmail(sender, receiver, msg.as_string())
print("邮件发送成功")
except Exception as e:
print("邮件发送失败: ", str(e))
# 关闭连接
server.quit()
```
在这个示例中,你需要替换`sender`, `receiver`, `password`, 和`smtp_server`为你实际的邮箱和密码信息,以及图片文件路径。邮件正文部分可以自定义,图片文件应放在程序运行目录下。
阅读全文