Python 如何自动发邮件

Python 是世界上最受欢迎的编程语言之一,Python 可以实现各种各样的功能,自动化发邮件也是其中之一。本文将介绍 Python 的邮件发送库和如何自动发送邮件,希望能为读者提供帮助。

为什么要自动发邮件?

自动发邮件可以帮助我们解决很多工作中反复的、重复的、繁琐的工作。比如,每天早晨需要发送一封“日报”或“周报”给上级领导;或者需要给队员提醒一些重要的任务,这些都是可以使用 Python 自动发送邮件来实现的。

Python 邮件发送库

Python 邮件发送库有很多,但本文主要介绍 Python 标准库中的 smtplibemail 模块。smtplib 用于连接邮箱服务器并发送邮件,email 用于构建邮件内容和附件。

1. smtplib

smtplib 模块是 Python 标准库中用于链接发送邮件的工具包,它提供了 SMTPSMTP_SSL 两种链接方式,其中 SMTP_SSL 是使用 SSL 加密的方式,提高了安全性。

以下是通过 smtplib 发送邮件的基本步骤:

  1. 连接邮箱服务器
  2. 登录邮箱
  3. 构建邮件内容
  4. 发送邮件
  5. 关闭连接

示例代码:

import smtplib
from email.mime.text import MIMEText

mail_host = 'smtp.qq.com'  # 邮箱服务器
mail_user = 'xxx@qq.com'  # 邮箱用户名
mail_pass = 'xxx'  # 邮箱密码

sender = 'xxx@qq.com'  # 发件人邮箱
receivers = ['xxx@qq.com']  # 收件人邮箱,可以添加多个

message = MIMEText('Hello, this is a test email.')  # 邮件内容
message['From'] = sender
message['To'] = ','.join(receivers)
message['Subject'] = 'Python automated email'  # 邮件主题

smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 链接到邮箱服务器
smtpObj.login(mail_user, mail_pass)  # 登录邮箱
smtpObj.sendmail(sender, receivers, message.as_string())  # 发送邮件
smtpObj.quit()  # 关闭连接

2. email

email 模块是 Python 标准库中用于构建邮件内容和附件的工具包。

以下是通过 email 创建邮件内容的基本步骤:

  1. 创建 Message 对象
  2. 设置邮件头部信息
  3. 添加邮件正文
  4. 添加附件

示例代码:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

mail_host = 'smtp.qq.com'  # 邮箱服务器
mail_user = 'xxx@qq.com'  # 邮箱用户名
mail_pass = 'xxx'  # 邮箱密码

sender = 'xxx@qq.com'  # 发件人邮箱
receivers = ['xxx@qq.com']  # 收件人邮箱,可以添加多个

message = MIMEMultipart()  # 创建邮件对象
message['From'] = sender
message['To'] = ','.join(receivers)
message['Subject'] = 'Python automated email'  # 邮件主题

# 添加正文
text = MIMEText('Hello, this is a test email.\n')
message.attach(text)

# 添加附件
with open('xxx.zip', 'rb') as f:
    attach = MIMEApplication(f.read(), _subtype='zip')
    attach.add_header('content-disposition', 'attachment', filename='xxx.zip')
    message.attach(attach)

smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 链接到邮箱服务器
smtpObj.login(mail_user, mail_pass)  # 登录邮箱
smtpObj.sendmail(sender, receivers, message.as_string())  # 发送邮件
smtpObj.quit()  # 关闭连接

以上为简单的示例,创建邮件的更多用法可以查看 email 模块的官方文档或自行搜索。

组合自动发送邮件代码

通过以上的示例代码,我们可以组合出一个自动发送邮件的 Python 脚本。

示例代码:

import smtplib
from email.mime.text import MIMEText

mail_host = 'smtp.qq.com'  # 邮箱服务器
mail_user = 'xxx@qq.com'  # 邮箱用户名
mail_pass = 'xxx'  # 邮箱密码

sender = 'xxx@qq.com'  # 发件人邮箱
receivers = ['xxx@qq.com']  # 收件人邮箱,可以添加多个

message = MIMEText('Hello, this is a test email.')  # 邮件内容
message['From'] = sender
message['To'] = ','.join(receivers)
message['Subject'] = 'Python automated email'  # 邮件主题

smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 链接到邮箱服务器
smtpObj.login(mail_user, mail_pass)  # 登录邮箱
smtpObj.sendmail(sender, receivers, message.as_string())  # 发送邮件
smtpObj.quit()  # 关闭连接

print('Mail sent successfully!')

总结

Python 自动发送邮件是一项非常实用的技能,它可以帮助我们提高工作效率,减少人为错误,并节省时间和精力。通过本文介绍的 Python 邮件发送库,读者应该能够轻松上手发送邮件的代码编写。

最后的最后

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。

对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。

🧡AI职场汇报智能办公文案写作效率提升教程 🧡 专注于AI+职场+办公方向。
下图是课程的整体大纲
img
img
下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具
img

🚀 优质教程分享 🚀

  • 🎄可以学习更多的关于人工只能/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁) 知识定位 人群定位
🧡 AI职场汇报智能办公文案写作效率提升教程 🧡 进阶级 本课程是AI+职场+办公的完美结合,通过ChatGPT文本创作,一键生成办公文案,结合AI智能写作,轻松搞定多场景文案写作。智能美化PPT,用AI为职场汇报加速。AI神器联动,十倍提升视频创作效率
💛Python量化交易实战 💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐