动动小手,几行python代码让你的邮箱自动化又智能!

动动小手,几行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代码。

要了解如何做到这一点,请查看下面的指南。

链接:https://towardsdatascience.com/how-to-easily-automate-your-python-scripts-on-mac-and-windows-459388c9cc94

感谢阅读。你还可以订阅我们的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