Python 邮件发送格式化
更新时间:2023-09-30Python 邮件发送格式化
在日常工作和生活中,我们经常需要发送邮件,有时候需要给邮件添加一些格式化效果来使邮件更加美观和易读。Python 提供了邮件模块,可以便捷的完成邮件发送和格式化等操作。
第一段:邮件发送基础
在使用 Python 发送邮件前,需要先了解邮件协议以及相关概念。邮件协议有两种:SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol - Version 3)。SMTP 用于发送邮件,而 POP3 用于接收邮件。在使用 Python 发送邮件时,需要使用到 SMTP 协议,同时也需要使用到 Python 标准库中的 smtplib 模块。
import smtplib from email.mime.text import MIMEText # SMTP 服务器地址 smtp_server='smtp.163.com' # SMTP 服务器端口号 smtp_port=25 # 发件人地址 sender='sender@163.com' # 发件人账号密码 password='password' # 收件人地址 receiver='receiver@126.com' # 邮件主题 subject='Test email' # 邮件正文 content='This is a test email!' message=MIMEText(content, 'plain', 'utf-8') message['From']=sender message['To']=receiver message['Subject']=subject # 连接 SMTP 服务器 smtp_obj=smtplib.SMTP(smtp_server, smtp_port) # 登录 SMTP 服务器 smtp_obj.login(sender, password) # 发送邮件 smtp_obj.sendmail(sender, receiver, message.as_string()) # 关闭 SMTP 连接 smtp_obj.quit()
第二段:邮件内容格式化
Python 邮件模块支持多种邮件格式,包括纯文本邮件、HTML 邮件等。下面的代码演示如何发送一封 HTML 格式的邮件。
import smtplib from email.mime.text import MIMEText # SMTP 服务器地址 smtp_server='smtp.163.com' # SMTP 服务器端口号 smtp_port=25 # 发件人地址 sender='sender@163.com' # 发件人账号密码 password='password' # 收件人地址 receiver='receiver@126.com' # 邮件主题 subject='Test html email' # 邮件正文 content='This is a html email!
Content is here
' message=MIMEText(content, 'html', 'utf-8') message['From']=sender message['To']=receiver message['Subject']=subject # 连接 SMTP 服务器 smtp_obj=smtplib.SMTP(smtp_server, smtp_port) # 登录 SMTP 服务器 smtp_obj.login(sender, password) # 发送邮件 smtp_obj.sendmail(sender, receiver, message.as_string()) # 关闭 SMTP 连接 smtp_obj.quit()
第三段:邮件附件添加
邮件模块还支持添加附件,可以方便地发送带有附件的邮件。下面的代码演示如何发送一封带有附件的邮件。
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication # SMTP 服务器地址 smtp_server='smtp.163.com' # SMTP 服务器端口号 smtp_port=25 # 发件人地址 sender='sender@163.com' # 发件人账号密码 password='password' # 收件人地址 receiver='receiver@126.com' # 邮件主题 subject='Test email with attachment' # 邮件正文 content='This is a test email with attachment!' message=MIMEMultipart() message.attach(MIMEText(content, 'plain', 'utf-8')) # 添加附件 file_path='/path/to/attachment.txt' with open(file_path, 'rb') as f: attachment=MIMEApplication(f.read()) attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt') message.attach(attachment) message['From']=sender message['To']=receiver message['Subject']=subject # 连接 SMTP 服务器 smtp_obj=smtplib.SMTP(smtp_server, smtp_port) # 登录 SMTP 服务器 smtp_obj.login(sender, password) # 发送邮件 smtp_obj.sendmail(sender, receiver, message.as_string()) # 关闭 SMTP 连接 smtp_obj.quit()
第四段:总结
Python 邮件模块提供了便捷的方式来发送格式化的邮件,可以使用纯文本格式、HTML 格式、带有附件的邮件等。在使用邮件模块时,需要注意邮件协议、账号密码、收件人地址等相关设置。同时,还可以使用邮件模板来定制邮件格式,在发送邮件前进行渲染和替换。