如何使用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)
在上面的例子中,首先导入了smtplib和MIMEText模块。在send_email函数中,创建了一个MIMEText对象,用于表示邮件的内容。将内容、标题、发件人和收件人等信息赋给相应的属性。然后,设置SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。通过SMTP对象的starttls方法启用TLS加密,并调用login方法登录SMTP服务器。最后,调用sendmail方法发送邮件,传入发件人、收件人和消息体等参数。
在调用函数时,需要设置邮件的标题、发件人、收件人和内容等信息,并传给send_email函数。运行代码后,会通过SMTP服务器将邮件发送给收件人。
需要注意的是,具体的SMTP服务器的信息需要根据你自己的邮件服务提供商来设置,如Gmail、Outlook等。
希望这个示例对你有帮助!
