小能豆

如何使用 Python 在电子邮件中发送 HTML 内容?我可以发送简单的文本。

javascript

如何使用 Python 在电子邮件中发送 HTML 内容?我可以发送简单的文本。


阅读 22

收藏
2024-07-09

共1个答案

小能豆

要使用 Python 在电子邮件中发送 HTML 内容,可以使用 smtplib 库来处理电子邮件发送,并使用 email 包来创建电子邮件消息。以下是一个详细的步骤指南:

  1. 导入必要的库:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
  1. 设置 SMTP 服务器和登录凭据:
smtp_server = 'smtp.example.com'  # 替换为您的 SMTP 服务器
smtp_port = 587  # 替换为您的 SMTP 端口
username = 'your_email@example.com'  # 替换为您的邮箱
password = 'your_password'  # 替换为您的邮箱密码
  1. 创建电子邮件内容:
from_email = 'your_email@example.com'  # 替换为您的邮箱
to_email = 'recipient@example.com'  # 替换为收件人的邮箱
subject = '这是一封 HTML 邮件'
html_content = '''
<html>
  <body>
    <h1>这是一封 HTML 邮件</h1>
    <p>这封邮件包含 <b>HTML</b> 内容。</p>
  </body>
</html>
'''
  1. 编写电子邮件:
msg = MIMEMultipart('alternative')
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

# 附加 HTML 内容
html_part = MIMEText(html_content, 'html')
msg.attach(html_part)
  1. 发送电子邮件:
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(username, password)
    server.sendmail(from_email, to_email, msg.as_string())
    server.quit()
    print('邮件发送成功')
except Exception as e:
    print(f'邮件发送失败: {e}')

完整示例代码

以下是完整的代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# SMTP 服务器配置
smtp_server = 'smtp.example.com'  # 替换为您的 SMTP 服务器
smtp_port = 587  # 替换为您的 SMTP 端口
username = 'your_email@example.com'  # 替换为您的邮箱
password = 'your_password'  # 替换为您的邮箱密码

# 电子邮件内容
from_email = 'your_email@example.com'  # 替换为您的邮箱
to_email = 'recipient@example.com'  # 替换为收件人的邮箱
subject = '这是一封 HTML 邮件'
html_content = '''
<html>
  <body>
    <h1>这是一封 HTML 邮件</h1>
    <p>这封邮件包含 <b>HTML</b> 内容。</p>
  </body>
</html>
'''

# 编写电子邮件
msg = MIMEMultipart('alternative')
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

# 附加 HTML 内容
html_part = MIMEText(html_content, 'html')
msg.attach(html_part)

# 发送电子邮件
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(username, password)
    server.sendmail(from_email, to_email, msg.as_string())
    server.quit()
    print('邮件发送成功')
except Exception as e:
    print(f'邮件发送失败: {e}')

注意事项:

  • SMTP 服务器和端口:确保您将 smtp.example.com587 替换为您的邮件提供商的实际 SMTP 服务器和端口。
  • 安全性:请注意不要在脚本中存储明文密码。考虑使用环境变量或安全存储来保护您的凭据。
  • 错误处理:使用 try-except 块来捕获和显示在邮件发送过程中发生的任何错误。

通过这些步骤,您应该能够使用 Python 发送包含 HTML 内容的电子邮件。

2024-07-09