如何用Python实现电子邮件的自动化
前言
用Python自动化日常任务很容易。何用化通过api和库的实现结合,您可以轻松地设置系统来抓取网站、电邮发送电子邮件、自动管理数据和分析。何用化
在本文中,实现我们将概述如何编写一个Python脚本,电邮该脚本可以下载一组特定的自动公共数据,然后将其上传到电子邮件中,何用化并将其发送给任何需要的实现人。
这将使您熟悉使用Python请求库和Gmail API。电邮因此,自动如果您希望将来使用Python自动处理电子邮件,何用化这是实现一个很好的学习起点。
用Python下载文件
对于第一步,电邮我们将需要使用HTTP请求实际下载数据文件。
在本例中,我们将要下载的文件甚至在下面的链接中有一个简单的端点。因此,您不需要使用Selenium这样的库来尝试单击下载按钮。通常,如果有一个URL,那么使用链接下载就非常容易。
https://data.medicaid.gov/api/views/u72p-j37s/rows.json?accessType=DOWNLOAD
这个文件提供关于医疗补助和个人登记的信息。网站模板这对医疗保健提供者来说是有价值的,他们可以将其与内部数据联系起来,帮助更好地了解他们的市场。
为了下载它,我们将使用函数requests.get()。这将允许我们使用HTTP请求将数据拉到我们指定的URL。
例如,你可以看看下面的脚本:
# Part 1: Fetch the data. # Get the webpage, store it in a Response object and assign the text # About: https://requests.readthedocs.io/en/master/api/#requests.Response # This URL contains the .csv download of # https://catalog.data.gov/dataset/ \ # share-of-medicaid-enrollees-in-managed-care # used to send to the destination e-mail. csvFileURL = https://data.medicaid.gov/api/ \ views/u72p-j37s/rows. csv?accessType=DOWNLOADcsvFileRequest = requests.get(csvFileURL)csvFile = csvFileRequest.content它短小精悍,并将返回CSV作为您现在设置为变量的请求的一部分。我们稍后在创建电子邮件时将使用这个。但是接下来,我们需要设置Gmail API的凭据。
设置您的Gmail API
谷歌使您非常容易地设置api。您可以转到谷歌API控制台。从这里,您可以选择ENABLE API和服务,然后搜索Gmail API。
API控制台如下图所示。

你可以输入Gmail,它应该是唯一出现的。

然后您可以选择Gmail API,站群服务器它旁边会有一个ENABLE按钮。

一旦您在Gmail API上单击ENABLE,您就可以下载您的凭证或者使用API密钥和密钥。
我们的代码将使用JSON下载,但如果您愿意,可以将其转换为pickle。

有了这些设置,我们现在可以开始建立你的功能设置,然后自动发送你的电子邮件。
使用Gmail API 发送邮件
现在我们已经找到了一种获取数据的方法,我们需要弄清楚如何发送电子邮件。
为了做到这一点,我们将使用电子邮件库。这个库可以让我们设置电子邮件的各个部分:发件人、收件人、主题等。
我们在电子邮件中使用MIMEBase类来实现这一点,这使得设置正确的数据点变得很容易,并且为将来使用的Gmail API提供了一个简单的类。
使用MIMEBase类真的很简单,因为你可以创建一个新的类,然后引用很多需要的WordPress模板组件,比如:
message[‘from’] = test@gmail.com您可以看到我们在下面设置这些参数的整个函数。
# Function required for Part 2: Send e-mail with Google API. # a) Create the message def create_message(sender, to, subject, csv): #message = MIMEMultipart() message = MIMEMultipart() message[from] = sender message[to] = to message[subject] = subject # Send the time it was updated as the body of the e-mail dt_object = datetime.utcnow() - timedelta(hours = 7) msg = MIMEText(Hi! Your file was updated. \ \nTime of update: + dt_object.strftime(%m/%d/%Y, %I:%M:%S %p) \ + (Los Angeles Time)) message.attach(msg) # Attach the .csv file record = MIMEBase(application, octet-stream) # print(csv) record.set_payload(csv) encoders.encode_base64(record) record.add_header(Content-Disposition, attachment, filename=medicare.csv) message.attach(record) # Return the message raw = base64.urlsafe_b64encode(message.as_bytes()) raw = raw.decode() return {raw: raw}您将注意到在最后,我们使用了函数urlsafe_b64encode。这将把消息设置为字节。这将用于轻松地将电子邮件数据传输到Gmail API。所以它很容易传递。
现在是时候发送你的第一封自动邮件了。现在您已经设置了Gmail API凭据,我们可以发送第一封电子邮件了。我们将使用使用Gmail API和凭据设置的服务变量。这如下面的函数send_message所示。
#b) Send the message def send_message(service, user_id, message): try: message = service.users().messages(). \ send(userId=user_id, body=message).execute() print(Message Id: %s % message[id]) return message except Exception as e: print(An error occurred: %s % e) return None从这里开始,我们需要做的就是传递消息并执行。至此,我们已经发送了第一封电子邮件。
相关文章
电脑开机错误00005(深入了解电脑开机错误00005,避免数据丢失和系统崩溃)
摘要:电脑开机错误00005是一种常见的问题,它可能导致系统崩溃、数据丢失和其他严重后果。在本文中,我们将深入探讨这个问题,并提供一些解决方法和预防措施,以帮助您有效应对这个错误。...2025-11-05
人们认为JavaScript是最适合初学者的语言。一部分原因在于JavaScript在互联网中运用广泛,另一部分原因在于其自身特性使得即使编写的代码不那么***依然可以运行:无论是否少了一个分号或是内2025-11-05
“数字退火”计算机惊艳问世 一秒完成超算8亿年才能完成的运算
富士通成功研发“数字退火”计算机。这台计算机运算速度惊人,日本目前最快的超级计算机“京”需要 8 亿年时间才能完成的运算,“数字退火”计算只需一秒即可完成,其神奇的运算速度已不能用每秒多少次运算来表述2025-11-05
前言如果你有一定的前端基础,比如 HTML、CSS、JavaScript、jQuery;那么,Node.js 能让你以最低的成本快速过渡成为一个全栈工程师(我称这个全栈为伪全栈,我认为的全栈也要精通数2025-11-05oppo手机边充电边玩的危害与防范(揭秘oppo手机边充电边玩的危害以及如何正确使用)
摘要:在现代社会,手机已经成为人们生活中必不可少的一部分。然而,为了满足人们对手机的持久使用需求,一些手机品牌推出了边充电边玩的功能,如oppo手机。这项功能让用户可以在手机正在充电的同...2025-11-05
前言什么是 V8?JavaScript运行的背后发生了什么?如果你是一个 JS 开发者或者是正在学习这门语言的学生,很大概率上你会遇到双字母词”V8”。在这篇文章中,我将会为你简述不同的 JS 引擎并2025-11-05

最新评论