动动小手,几行python代码让你的邮箱自动化又智能!
你知道大多数办公室工作的共同点是什么吗?在大多数情况下,你必须定期发送电子邮件。
无论你是程序员、数据科学家还是工程师,你都有机会每天阅读和回复电子邮件。这项活动并没有给我们的职业增加任何价值,但它会停止我们的手头的工作,占用我们宝贵的时间。
解决方案是什么?用Python实现自动化!
在本教程中,我将向您展示如何使用Python自动发送电子邮件。在本教程中,我们将使用Gmail,因此请确保您有一个Gmail帐户来测试此自动化。如果你想了解更多关于编程的相关内容,可以阅读以下这些文章:
数据工程职业道路:到底该选编程还是无码?
Data Scientist生产力进阶—Python OOP编程快速入门
如何准备数据科学的现场编程面试?
算法基础——10个常见编程面试题
内容列表
1、开启两步验证“2-Step Verification”
2、用Python发送邮件
- 导入库并设置电子邮件发件人和收件人
- 设置电子邮件的主题和正文
- 添加SSL
- 登录并发送电子邮件
3、安排Python代码每月、每周或每天运行
如果你不想看文字,你可以看我的视频!
1、开启两步验证“2-Step Verification”
在开始编写代码之前,我们需要设置Gmail帐户,以便能够将其与Python一起使用。
过去,我们可以通过Python轻松地连接到Gmail,只需开启“Less secure app access”,但这个选项已经不可用了。我们现在要做的是启用两步验证“2-Step Verification”,以获得一个16个字符的密码,我们可以在Python中用这个密码登录Gmail。
首先,转到您的Google帐户,选择要用于本教程的帐户,然后在左侧面板上选择选项“Security”。
然后向下滚动,直到找到“Signing in to Google”,这里我们需要点击“2-Step Verification”。
之后,我们将看到一个新页面,此处单击“Get Started”。
谷歌将要求再次登录。然后我们需要输入一个电话号码并单击“Next”,然后我们会得到一个验证码来验证刚输入的电话号。在输入验证码之后,我们应该看到下面的页面。
我们需要单击“Turn On”
如果一切设置正确,我们将看到一个新页面,其中显示消息“2-Step Verification is On.”,说明2步验证已打开。
最后,我们需要点击“App Passwords”,再次转到您的Google帐户。通过单击“Security”,向下滚动,直到找到“Signing in to Google”并选择“App Passwords.”
我们需要再次登录。之后,我们将看到下面的页面。
在“Select app”下拉列表中,选择“Other (Custom name)”并键入你随意起的任何名称。我将我的名字命名为“Python”,然后单击“Generate”。
在这之后,我们应该会看到一个新页面,在一个黄色框中显示16位的密码,如下所示。
一切都安排好了!我们将使用这个16位密码在Python中登录我们的Gmail帐户。
现在,您可以复制此密码并将其粘贴到Python脚本中的变量中,或者使用环境变量隐藏密码(我强烈建议您这样做)。您可以按照我的指南在Windows和macOS上创建环境变量。
2、用Python发送邮件
一旦我们打开两步验证并拥有16位密码,我们就可以开始编写代码了。
- 导入库并设置电子邮件发件人和收件人
要使用Python发送电子邮件,我们需要使用以下内置Python库。
import smtplib
import ssl
from email.message import EmailMessage
email_sender = 'codelessearnmore@gmail.com'
email_password = 'write-password-here'
email_receiver = 'write-email-receiver-here'
此外,我们还设置了电子邮件发件人和密码(这是我们用于开启“2-step verification”的电子邮件)以及电子邮件收件人。
请注意,电子邮件收件人不必是Gmail帐户,也可以来自其他电子邮件服务。
- 设置电子邮件的主题和正文
现在我们需要定义一个主题和一个主体。我们可以在这里写任何我们想写的东西。
subject = 'Check out my new video!'
body = """
I've just published a new video on YouTube: https://youtu.be/2cZzP9DLlkg
"""
请注意,我在正文中使用三对双引号来写多行。
在此之后,我们实例化EmailMessage类,并使用之前为电子邮件、主题和正文创建的变量。
em = EmailMessage()
em['From'] = email_sender
em['To'] = email_receiver
em['Subject'] = subject
em.set_content(body)
- 添加SSL
现在,让我们使用SSL添加一个安全层。SSL是保持internet连接安全和保护两个系统之间发送的任何敏感数据的标准技术。
context = ssl.create_default_context()
- 登录并发送电子邮件
最后,我们指定hostsmtp.gmail.com,通过端口465连接,并使用上一步中定义的上下文,登录并发送我们的电子邮件。
with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp:
smtp.login(email_sender, email_password)
smtp.sendmail(email_sender, email_receiver, em.as_string())
祝贺我们刚刚使用Python发送了一封电子邮件。转到email_receiver 收件箱查看我们发送的电子邮件。
这是我收到的电子邮件。
您可以在我的Github上查看我们在本文中的代码。
注意:如果在运行代码之后,您得到了“ssl.SSLCertVerificationError”这样的错误提示,请搜索名为“Install Certificates.command”的文件并安装它。
也可以转到“Applications”,单击名为“Python 3.X”的文件夹,然后双击文件“Install Certificates.command”。
安装完成后,运行代码时应该就不会有任何错误消息了。
3、安排Python代码每月、每周或每天运行
您可以使用macOS上的crontab和Windows上的任务调度器来计划每天或每周执行此Python代码。
要了解如何做到这一点,请查看下面的指南。
感谢阅读。你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/
原文作者:Frank Andrade
翻译作者:过儿
美工编辑:过儿
校对审稿:Miya
原文链接:https://medium.com/towards-data-science/how-to-easily-automate-emails-with-python-8b476045c151