溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中怎么實現(xiàn)電子郵件的自動化

發(fā)布時間:2021-07-10 16:14:16 來源:億速云 閱讀:153 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Python中怎么實現(xiàn)電子郵件的自動化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

用Python下載文件

對于第一步,我們將需要使用HTTP請求實際下載數(shù)據(jù)文件。

在本例中,我們將要下載的文件甚至在下面的鏈接中有一個簡單的端點。因此,您不需要使用Selenium這樣的庫來嘗試單擊下載按鈕。通常,如果有一個URL,那么使用鏈接下載就非常容易。

https://data.medicaid.gov/api/views/u72p-j37s/rows.json?accessType=DOWNLOAD

這個文件提供關(guān)于醫(yī)療補助和個人登記的信息。這對醫(yī)療保健提供者來說是有價值的,他們可以將其與內(nèi)部數(shù)據(jù)聯(lián)系起來,幫助更好地了解他們的市場。

為了下載它,我們將使用函數(shù)requests.get()。這將允許我們使用HTTP請求將數(shù)據(jù)拉到我們指定的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=DOWNLOAD'csvFileRequest = requests.get(csvFileURL)csvFile = csvFileRequest.content

它短小精悍,并將返回CSV作為您現(xiàn)在設(shè)置為變量的請求的一部分。我們稍后在創(chuàng)建電子郵件時將使用這個。但是接下來,我們需要設(shè)置Gmail  API的憑據(jù)。

設(shè)置您的Gmail API

谷歌使您非常容易地設(shè)置api。您可以轉(zhuǎn)到谷歌API控制臺。從這里,您可以選擇ENABLE API和服務(wù),然后搜索Gmail API。

API控制臺如下圖所示。

Python中怎么實現(xiàn)電子郵件的自動化

你可以輸入Gmail,它應(yīng)該是唯一出現(xiàn)的。

Python中怎么實現(xiàn)電子郵件的自動化

然后您可以選擇Gmail API,它旁邊會有一個ENABLE按鈕。

Python中怎么實現(xiàn)電子郵件的自動化

一旦您在Gmail API上單擊ENABLE,您就可以下載您的憑證或者使用API密鑰和密鑰。

我們的代碼將使用JSON下載,但如果您愿意,可以將其轉(zhuǎn)換為pickle。

Python中怎么實現(xiàn)電子郵件的自動化

有了這些設(shè)置,我們現(xiàn)在可以開始建立你的功能設(shè)置,然后自動發(fā)送你的電子郵件。

使用Gmail API 發(fā)送郵件

現(xiàn)在我們已經(jīng)找到了一種獲取數(shù)據(jù)的方法,我們需要弄清楚如何發(fā)送電子郵件。

為了做到這一點,我們將使用電子郵件庫。這個庫可以讓我們設(shè)置電子郵件的各個部分:發(fā)件人、收件人、主題等。

我們在電子郵件中使用MIMEBase類來實現(xiàn)這一點,這使得設(shè)置正確的數(shù)據(jù)點變得很容易,并且為將來使用的Gmail API提供了一個簡單的類。

使用MIMEBase類真的很簡單,因為你可以創(chuàng)建一個新的類,然后引用很多需要的組件,比如:

message[‘from’] = test@gmail.com

您可以看到我們在下面設(shè)置這些參數(shù)的整個函數(shù)。

# 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}

您將注意到在最后,我們使用了函數(shù)urlsafe_b64encode。這將把消息設(shè)置為字節(jié)。這將用于輕松地將電子郵件數(shù)據(jù)傳輸?shù)紾mail  API。所以它很容易傳遞。

現(xiàn)在是時候發(fā)送你的第一封自動郵件了?,F(xiàn)在您已經(jīng)設(shè)置了Gmail API憑據(jù),我們可以發(fā)送第一封電子郵件了。我們將使用使用Gmail  API和憑據(jù)設(shè)置的服務(wù)變量。這如下面的函數(shù)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

上述就是小編為大家分享的Python中怎么實現(xiàn)電子郵件的自動化了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI