欢迎访问宙启技术站
智能推送

如何在Python中发送HTML格式的电子邮件

发布时间:2024-01-12 18:26:13

在Python中,可以使用smtplib库来发送电子邮件,并使用email库来生成和处理邮件的内容。要发送HTML格式的邮件,需要创建一个MIMEText对象,并将其设置为HTML格式。以下是一个例子,展示如何在Python中发送HTML格式的电子邮件:

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

def send_email(sender, receiver, subject, html_content):
    # 创建一个MIMEMultipart对象
    message = MIMEMultipart("alternative")
    message["Subject"] = subject
    message["From"] = sender
    message["To"] = receiver

    # 创建一个MIMEText对象,设置为HTML格式
    html_body = MIMEText(html_content, "html")
    message.attach(html_body)

    try:
        # 连接到SMTP服务器并发送邮件
        smtpObj = smtplib.SMTP("smtp.example.com", 587)
        smtpObj.ehlo()
        smtpObj.starttls()
        smtpObj.login("user@example.com", "password")
        smtpObj.sendmail(sender, receiver, message.as_string())
        smtpObj.quit()
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("邮件发送失败:", e)

# 示例用法
sender = "sender@example.com"
receiver = "receiver@example.com"
subject = "HTML邮件示例"
html_content = """
<html>
<head></head>
<body>
  <h1>这是一个HTML邮件示例</h1>
  <p>这是一段<strong>加粗的</strong>文字。</p>
  <p>这是一个<a href="https://www.example.com">链接</a>。</p>
</body>
</html>
"""

send_email(sender, receiver, subject, html_content)

在上述例子中,我们定义了一个名为send_email的函数,接受发件人地址、收件人地址、主题和HTML内容作为参数。我们创建了一个MIMEMultipart对象,并设置相关的邮件头。然后,我们创建了一个MIMEText对象,将HTML内容设置为其正文,并将其附加到MIMEMultipart对象中。最后,我们连接到SMTP服务器,登录并发送邮件。

这个例子中,我们使用smtplib.SMTP类来创建SMTP对象并连接到SMTP服务器。ehlo()方法用于与SMTP服务器打招呼,starttls()方法用于启动加密传输层。然后,我们调用login()方法来登录SMTP服务器,传入发件人地址和密码。最后,我们使用sendmail()方法发送邮件,传入发件人地址、收件人地址和邮件内容。最后,我们调用quit()方法关闭与SMTP服务器的连接。

注意,你需要将代码中的smtp.example.comuser@example.compassword替换为你自己的SMTP服务器地址、发件人地址和密码。

通过上述例子,你可以在Python中使用smtplib库和email库来发送HTML格式的电子邮件。你可以根据需要自定义修改邮件的内容和样式。