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

Python中通过MIMEText()发送包含中文内容的电子邮件

发布时间:2024-01-18 10:38:45

在Python中,可以使用email.mime.text.MIMEText来发送包含中文内容的电子邮件。email.mime.text.MIMETextemail.mime.text模块中的一个类,它用于创建一个带有文本内容的MIME格式邮件。

下面是一个使用MIMEText发送包含中文内容的电子邮件的示例代码:

import smtplib
from email.mime.text import MIMEText

def send_email(subject, content, from_addr, to_addr, smtp_server, smtp_port, username, password):
    # 创建一个MIMEText对象,设置邮件正文内容和邮件类型(plain表示纯文本)
    message = MIMEText(content, 'plain', 'utf-8')

    # 设置邮件主题、发件人和收件人
    message['Subject'] = subject
    message['From'] = from_addr
    message['To'] = to_addr

    try:
        # 创建一个SMTP对象,并连接到SMTP服务器
        smtpObj = smtplib.SMTP(smtp_server, smtp_port)
        smtpObj.starttls()
        smtpObj.login(username, password)

        # 发送邮件
        smtpObj.sendmail(from_addr, [to_addr], message.as_string())

        # 断开连接
        smtpObj.quit()
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("邮件发送失败: ", e)

if __name__ == '__main__':
    subject = "测试邮件"
    content = "这是一封包含中文内容的测试邮件。"
    from_addr = "your_email@example.com"
    to_addr = "recipient@example.com"
    smtp_server = "smtp.example.com"
    smtp_port = 587
    username = "your_email@example.com"
    password = "your_email_password"

    send_email(subject, content, from_addr, to_addr, smtp_server, smtp_port, username, password)

在上面的示例代码中,send_email()函数用于发送邮件,它接收邮件主题、邮件内容、发件人地址、收件人地址、SMTP服务器地址、SMTP服务器端口号、发件人用户名和密码作为参数。

在函数中,我们创建了一个MIMEText对象 message,设置了邮件的正文内容(content)、邮件类型(plain表示纯文本)和编码方式(utf-8)。然后设置了邮件的主题(subject)、发件人地址(from_addr)和收件人地址(to_addr)。最后使用SMTP对象的sendmail()方法发送邮件,并在发送成功或发送失败时打印相应的提示信息。

你需要根据实际情况修改from_addrto_addrsmtp_serversmtp_portusernamepassword等参数。另外,请确保你的SMTP服务器支持SSL/TLS协议,否则请修改send_email()函数中的代码以适应你的SMTP服务器的要求。

这是一个简单的示例代码,你可以根据自己的需求进行扩展,比如添加附件等。希望对你有帮助!