如何使用python发送html格式邮件
时间: 2024-10-24 21:07:35 浏览: 53
如何使用Python发送HTML格式的邮件
在Python中,你可以使用内置的`smtplib`库和`email`模块来发送HTML格式的邮件。以下是一个简单的步骤指南:
首先,你需要导入必要的模块:
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
```
然后创建一个MIMEMultipart对象,同时包含HTML文本和普通的纯文本:
```python
msg = MIMEMultipart('alternative')
msg['Subject'] = '主题'
msg['From'] = '你的邮箱地址'
msg['To'] = '收件人的邮箱地址'
# 创建HTML部分
html_content = """
<html>
<head></head>
<body>
<p>这是邮件的HTML内容</p>
</body>
</html>
"""
# 将HTML转成MIMEText对象,设置charset
html_part = MIMEText(html_content, 'html', 'utf-8')
# 添加HTML部分到MIMEMultipart
msg.attach(html_part)
```
接下来,如果你有附件的话,可以添加到邮件中:
```python
# 如果有附件
with open('attachment.pdf', 'rb') as f:
attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(f.read())
# 设置附加信息
attachment.add_header('Content-Disposition', 'attachment', filename='attachment.pdf')
msg.attach(attachment)
```
最后,连接到SMTP服务器并发送邮件:
```python
smtp_server = 'smtp.example.com' # 根据你的SMTP服务器填写
smtp_port = 587 # 或者465如果需要加密
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls() # 开启TLS连接
server.login(msg['From'], '你的密码') # 登录你的邮箱
server.sendmail(msg['From'], [msg['To']], msg.as_string()) # 发送邮件
print("邮件已发送")
except Exception as e:
print(f"发送邮件失败: {str(e)}")
finally:
server.quit()
```
阅读全文