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

Python中使用MIMEText()发送HTML邮件的方法

发布时间:2024-01-03 04:03:39

在Python中,可以使用MIMEText模块来发送HTML格式的邮件。MIMEText模块是Python标准库中的一部分,可以用于创建带有指定内容和MIME类型的消息体。

以下是使用MIMEText发送HTML邮件的方法,包括创建邮件内容并设置MIME类型、添加收件人和主题,并发送邮件的完整示例。

首先,我们需要导入需要的模块:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

然后,我们可以创建邮件内容及相关设置,如发送方、收件方、主题和内容:

# 创建一个带有HTML内容的邮件对象
message = MIMEText('<h1>Hello, world!</h1>', 'html', 'utf-8')

# 设置邮件发送方和收件方
message['From'] = Header('sender@example.com', 'utf-8')
message['To'] = Header('receiver@example.com', 'utf-8')

# 设置邮件主题
message['Subject'] = Header('Python HTML 邮件测试', 'utf-8')

在上述代码中,MIMEText接收三个参数:邮件内容、MIME类型和字符编码。在这里,我们将邮件内容设置为一个简单的HTML字符串"<h1>Hello, world!</h1>",将MIME类型设置为'html',字符编码设置为'utf-8'。

然后,使用Header函数来设置发送方、收件方和主题的相关信息,字符编码同样设置为'utf-8'。

接下来,我们可以使用smtplib模块来发送邮件,并输出发送结果:

# 设置 SMTP 服务器地址和端口号
smtp_server = 'smtp.example.com'
smtp_port = 25

# 配置 SMTP 服务器账户和密码
smtp_user = 'your_username'
smtp_password = 'your_password'

try:
    # 创建 SMTP 对象
    smtp_obj = smtplib.SMTP(smtp_server, smtp_port)

    # 登录 SMTP 服务器
    smtp_obj.login(smtp_user, smtp_password)

    # 发送邮件
    smtp_obj.sendmail(message['From'], message['To'], message.as_string())
    
    print('邮件发送成功')
except Exception as e:
    print('邮件发送失败:', e)
finally:
    # 关闭 SMTP 对象
    smtp_obj.quit()

在上述代码中,我们需要配置SMTP服务器的地址和端口号,以及SMTP服务器的账户和密码。

然后,我们创建一个SMTP对象,并使用login方法登录SMTP服务器。

最后,使用sendmail方法发送邮件。sendmail方法接收三个参数:发送方、收件方和邮件内容。我们将邮件内容使用message.as_string()来转换为字符串形式。

如果邮件发送成功,将输出"邮件发送成功";如果出现异常,将输出"邮件发送失败"并打印出异常信息。

最后,使用quit方法关闭SMTP对象。

以上就是使用MIMEText()发送HTML邮件的方法,包括创建邮件内容并设置MIME类型、添加收件人和主题,并发送邮件的完整示例。