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

如何使用Python的MIMEText()模块发送含有中文标题的电子邮件

发布时间:2024-01-18 10:41:27

MIMEText()模块是Python的一个模块,用于发送电子邮件。它可以创建一个MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)的消息体,包含邮件的内容和附件等信息。在发送带有中文标题的电子邮件时,需要进行一些特殊处理。

下面是一个使用MIMEText()模块发送含有中文标题的电子邮件的例子:

import smtplib
from email.mime.text import MIMEText

def send_email(subject, sender, receivers, text):
    # 创建一个MIMEText对象,用于表示邮件内容
    msg = MIMEText(text, 'plain', 'utf-8')
    msg['Subject'] = subject  # 设置邮件标题
    msg['From'] = sender  # 设置发件人
    msg['To'] = ', '.join(receivers)  # 设置收件人,多个收件人之间用逗号分隔

    # 设置SMTP服务器的信息
    smtp_server = 'smtp.example.com'
    smtp_port = 587
    smtp_username = 'your_username'
    smtp_password = 'your_password'

    try:
        # 创建一个SMTP对象
        server = smtplib.SMTP(smtp_server, smtp_port)
        server.starttls()  # 启用TLS加密
        server.login(smtp_username, smtp_password)  # 登录SMTP服务器

        # 发送邮件
        server.sendmail(sender, receivers, msg.as_string())

        print('邮件发送成功')
    except Exception as e:
        print('邮件发送失败:', e)
    finally:
        # 关闭SMTP连接
        server.quit()

# 设置邮件的标题、发件人、收件人和内容
subject = '测试邮件标题'
sender = 'sender@example.com'
receivers = ['receiver1@example.com', 'receiver2@example.com']
text = '这是一封测试邮件。'

# 调用函数发送邮件
send_email(subject, sender, receivers, text)

在上面的例子中,首先导入了smtplibMIMEText模块。在send_email函数中,创建了一个MIMEText对象,用于表示邮件的内容。将内容、标题、发件人和收件人等信息赋给相应的属性。然后,设置SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。通过SMTP对象的starttls方法启用TLS加密,并调用login方法登录SMTP服务器。最后,调用sendmail方法发送邮件,传入发件人、收件人和消息体等参数。

在调用函数时,需要设置邮件的标题、发件人、收件人和内容等信息,并传给send_email函数。运行代码后,会通过SMTP服务器将邮件发送给收件人。

需要注意的是,具体的SMTP服务器的信息需要根据你自己的邮件服务提供商来设置,如Gmail、Outlook等。

希望这个示例对你有帮助!