Python邮件发送指南:smtplib与email模块实战

1 下载量 87 浏览量 更新于2024-08-29 收藏 62KB PDF 举报
"本文将详细介绍如何使用Python的smtplib和email模块发送邮件,包括设置邮件内容、添加附件、指定收件人等步骤。通过实例代码,读者将学会如何在Python环境中实现邮件的发送功能。" Python发送邮件是一个常见的需求,特别是在自动化任务和通知系统中。Python提供了内置的smtplib和email模块来支持这个功能。smtplib模块用于处理SMTP(Simple Mail Transfer Protocol),即邮件传输协议,而email模块则用于构造邮件的各个部分,如正文、主题、收件人等。 首先,我们需要了解邮件的基本结构。邮件通常由两部分组成:头部(包含主题、发件人、收件人等信息)和正文。在Python中,我们可以使用MIMEMultipart类来创建一个包含多个部分的邮件对象,例如,如果邮件同时包含文本和HTML内容,可以这样构建: ```python from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText msg = MIMEMultipart() msg['Subject'] = '邮件主题' msg['From'] = '发件人邮箱' msg['To'] = '收件人邮箱' text_part = MIMEText('邮件正文', 'plain', 'utf-8') msg.attach(text_part) ``` 接下来,我们可以使用MIMEText类来添加纯文本或HTML内容到邮件中。例如,要添加HTML内容: ```python html_part = MIMEText('<b>这是HTML内容</b>', 'html', 'utf-8') msg.attach(html_part) ``` 如果需要发送带附件的邮件,可以使用MIMEBase类或者更具体的子类,如MIMEApplication、MIMEMultipart等。例如,添加一个名为"example.txt"的文本附件: ```python from email.mime.application import MIMEApplication with open('example.txt', 'rb') as f: attachment = MIMEApplication(f.read(), _subtype='txt') attachment.add_header('Content-Disposition', 'attachment', filename='example.txt') msg.attach(attachment) ``` 为了发送邮件,我们需要连接到SMTP服务器。Python的smtplib模块提供了SMTP类来实现这个功能。以下是如何使用SMTP发送邮件的示例: ```python import smtplib server = smtplib.SMTP('smtp.exmail.qq.com', 587) # 使用QQ企业邮箱为例,端口号通常是25或587 server.starttls() # 开启安全连接 server.login('你的邮箱账号', '你的邮箱密码') server.send_message(msg) server.quit() ``` 在实际应用中,我们可能需要处理多个收件人,可以将收件人邮箱地址存储在一个列表中,并使用';'分隔来设置msg['To']字段。此外,还可以根据需要添加抄送人(CC)和密送人(BCC)。 Python的smtplib和email模块为开发者提供了一套强大的工具,能够方便地实现邮件的发送功能,无论是简单的文本邮件还是复杂的带附件的HTML邮件。通过理解这些基础知识,你可以轻松地在你的项目中集成邮件发送功能。