Python中通过MIMEText()发送包含中文内容的电子邮件
发布时间:2024-01-18 10:38:45
在Python中,可以使用email.mime.text.MIMEText来发送包含中文内容的电子邮件。email.mime.text.MIMEText是email.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_addr、to_addr、smtp_server、smtp_port、username和password等参数。另外,请确保你的SMTP服务器支持SSL/TLS协议,否则请修改send_email()函数中的代码以适应你的SMTP服务器的要求。
这是一个简单的示例代码,你可以根据自己的需求进行扩展,比如添加附件等。希望对你有帮助!
