Python使用smtplib、MIMEText发送邮件教程

1 下载量 172 浏览量 更新于2024-08-31 收藏 189KB PDF 举报
"本文介绍了如何使用Python通过smtplib和MIMEText模块实现发送邮件的功能,特别是使用163邮箱作为示例。" 在Python中,发送电子邮件是一项常见的任务,可以用于自动化报告、通知或者数据传输。这个过程涉及到几个关键知识点,包括: 1. **smtplib模块**: Python的标准库提供了smtplib模块,用于处理SMTP(Simple Mail Transfer Protocol)协议,这是互联网上用于发送电子邮件的主要协议。smtplib模块提供了SMTP服务器的连接和通信功能。 2. **MIMEText模块**: 为了构建邮件消息,我们需要使用MIME(Multipurpose Internet Mail Extensions)技术。Python的email.mime.text模块中的MIMEText类,允许我们创建包含纯文本的邮件消息。 3. **邮件服务器和端口号**: 在代码中,mail_host参数表示邮件服务器的地址,如' smtp.163.com '是163邮箱的SMTP服务器。端口号(port)通常与服务提供商有关,例如163邮箱的默认SMTP端口是25。 4. **授权码**: 为了安全起见,大多数现代邮箱服务不再使用实际的登录密码来发送邮件,而是需要一个专门的授权码。在示例中,`passwd`参数应填写的是从邮箱设置中获取的授权码,而不是常规登录密码。 5. **邮件构造**: `MIMEText(content)`用于创建邮件主体,`msg['Subject']=title`和`msg['From']=username`等设置邮件的标题、发件人信息。`msg['To']=recv`用于指定收件人,如果有多人,可以使用逗号分隔。 6. **SMTP连接和发送**: `smtp=smtplib.SMTP(mail_host,port=port)`用于建立SMTP连接,`smtp.login(username,passwd)`登录邮箱,然后`smtp.sendmail(username,recv,msg.as_string())`发送邮件。最后,`smtp.quit()`关闭SMTP连接。 7. **实际应用**: 示例中的`if __name__ == '__main__':`部分展示了如何调用`send_mail`函数,填写相应的发送者账号、授权码、收件人地址以及邮件标题和内容,即可发送邮件。 在实际应用中,你可能需要根据你的邮箱服务提供商调整邮件服务器地址和端口号,同时确保你已经启用了SMTP服务,并获取到了正确的授权码。此外,还可以扩展此功能,支持HTML内容、附件,或者实现更复杂的邮件队列管理。