- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- Python中怎么實(shí)現電子郵件的自動(dòng)化
這期內容當中小編將會(huì )給大家帶來(lái)有關(guān)Python中怎么實(shí)現電子郵件的自動(dòng)化,文章內容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
用Python下載文件
對于第一步,我們將需要使用HTTP請求實(shí)際下載數據文件。
在本例中,我們將要下載的文件甚至在下面的鏈接中有一個(gè)簡(jiǎn)單的端點(diǎn)。因此,您不需要使用Selenium這樣的庫來(lái)嘗試單擊下載按鈕。通常,如果有一個(gè)URL,那么使用鏈接下載就非常容易。
https://data.medicaid.gov/api/views/u72p-j37s/rows.json?accessType=DOWNLOAD
這個(gè)文件提供關(guān)于醫療補助和個(gè)人登記的信息。這對醫療保健提供者來(lái)說(shuō)是有價(jià)值的,他們可以將其與內部數據聯(lián)系起來(lái),幫助更好地了解他們的市場(chǎng)。
為了下載它,我們將使用函數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=DOWNLOAD'csvFileRequest = requests.get(csvFileURL)csvFile = csvFileRequest.content
它短小精悍,并將返回CSV作為您現在設置為變量的請求的一部分。我們稍后在創(chuàng )建電子郵件時(shí)將使用這個(gè)。但是接下來(lái),我們需要設置Gmail API的憑據。
設置您的Gmail API
谷歌使您非常容易地設置api。您可以轉到谷歌API控制臺。從這里,您可以選擇ENABLE API和服務(wù),然后搜索Gmail API。
API控制臺如下圖所示。
你可以輸入Gmail,它應該是唯一出現的。
然后您可以選擇Gmail API,它旁邊會(huì )有一個(gè)ENABLE按鈕。
一旦您在Gmail API上單擊ENABLE,您就可以下載您的憑證或者使用API密鑰和密鑰。
我們的代碼將使用JSON下載,但如果您愿意,可以將其轉換為pickle。
有了這些設置,我們現在可以開(kāi)始建立你的功能設置,然后自動(dòng)發(fā)送你的電子郵件。
使用Gmail API 發(fā)送郵件
現在我們已經(jīng)找到了一種獲取數據的方法,我們需要弄清楚如何發(fā)送電子郵件。
為了做到這一點(diǎn),我們將使用電子郵件庫。這個(gè)庫可以讓我們設置電子郵件的各個(gè)部分:發(fā)件人、收件人、主題等。
我們在電子郵件中使用MIMEBase類(lèi)來(lái)實(shí)現這一點(diǎn),這使得設置正確的數據點(diǎn)變得很容易,并且為將來(lái)使用的Gmail API提供了一個(gè)簡(jiǎn)單的類(lèi)。
使用MIMEBase類(lèi)真的很簡(jiǎn)單,因為你可以創(chuàng )建一個(gè)新的類(lèi),然后引用很多需要的組件,比如:
message[‘from’] = test@gmail.com
您可以看到我們在下面設置這些參數的整個(gè)函數。
# 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。所以它很容易傳遞。
現在是時(shí)候發(fā)送你的第一封自動(dòng)郵件了?,F在您已經(jīng)設置了Gmail API憑據,我們可以發(fā)送第一封電子郵件了。我們將使用使用Gmail API和憑據設置的服務(wù)變量。這如下面的函數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
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站