R 套件筆記 | 利用 gmailr 套件與設定 gmail 帳號,實現自動化制式郵件

更新於 發佈於 閱讀時間約 5 分鐘

由於工作上會收發大量電子郵件,大部分的信件都是制式的內容,老實說工作初期真的覺得超煩的,雖說只是制式的更換收件人、貼上對應的內容,但是當案件一多不免出現錯誤,也沒辦法專注在信件的內容,淪為一項純粹愚蠢的工作。

gmailr 這個套件可說是把我從信件攻擊中拯救出來,可以用熟悉的 R 語言擺脫那無聊的 paper work,專注在工作本身,將自動生成信件草稿批次產生之後,只要確認信件內容,若有必要進行個別修改就可以寄出,增加工作效率與減少害怕弄錯的心理壓力。

套件安裝與帳號設定

gmailr 套件安裝本身跟一般 R 套件相同,但是 Google 帳號設定有點麻煩,每次要設定新信箱都要想很久外加查半天(不過也是因為我跟 Google API 不熟而且每個帳號也只需要設定一次),需要在 Google Cloud 上操作以下步驟:

  1. 建立新專案,如果是公司 G Suite 帳號可以將位置設定在機構內,若為一般免費的 Google 帳號就設定無機構。
  2. 在專案內搜尋並啟用 Gmail API。
  3. 建立 OAuth 用戶端憑證,應用程式名稱取名似乎有被限制(比如不能出現 "mail" 這個字),支援電子郵件填自己就可以了,應用程式類型選擇電腦版應用程式。
  4. 下載憑證 json 檔,檔名預設很長,我自己習慣命名為 credentials.json。
  5. 如果專案設定無機構的話記得去新增使用者加入自己的信箱,否則執行後會顯示未完成 Google 驗證程序(內部機構則不需進行此步驟)。
  6. 執行 R script,gm_auth() 執行後應自動跳出瀏覽器畫面並詢問存取範圍,一路確認並同意之後,最終會出現 "Authentication complete. Please close this page and return to R." 表示帳號連接成功。


rm(list=ls())
#install.packages("gmailr")
library(gmailr)
#path放上下載好的憑證檔案​
gm_auth_configure(path = "YOURPATH/credentials.json")
#可以在 email 放上指定的信箱,或是 = TRUE 在瀏覽器上選擇
gm_auth(email = TRUE ,cache = ".secret")
#Waiting for authentication in browser...
#Press Esc/Ctrl + C to abort
#Authentication complete.


信件搜尋和內容讀取

搜尋指定條件的信件可用於統計或是後續自動化處理,比如某一時間區段收到的信件數量,或是抓取制式信件的固定字串進行後續處理。

##搜尋符合的信
# search 與 gmail ​搜尋功能相同
#num_results 預設值為 100
msgs = gm_messages(search = "搜尋關鍵字 after:2023/01/01 before:2023/12/31",
num_results=1000)
#取出信件 id​
id=gm_id(msgs)

#利用 id 讀取第 i 封信件內容​
x=gm_message(id[i] ,user_id = "me")
#信件日期​
gm_date(x)
#信件標題​
gm_subject(x)
#信件內容(gm_body有時候沒辦法讀取到信件內容,可能是編碼問題?)
gm_body(x)
gmailr:::base64url_decode_to_char(x$payload$parts[[1]]$parts[[1]]$body$data)
#附檔下載
gm_save_attachments(x)


編寫信件

程式可以設定收件人、附件,搭配 html 語法撰寫郵件內容,依照需求可以選擇將郵件放在草稿匣或是直接寄出,搭配迴圈和資料表就可以大量產出信件。

 email <- gm_mime() %>%
#收件者信箱​
gm_to("TOMAIL") %>%
#副本收件者
gm_cc("CCMAIL") %>%
#寄件者信箱
gm_from("MYMAIL") %>%
#寫出中文標題需要一些轉換
gm_subject(paste0("=?utf-8?B?",
base64enc::base64encode(charToRaw(enc2utf8("信件標題"))), "?=")) %>%
#信件內容
gm_html_body("MAIL") %>%
#附件
gm_attach_file("ATTACHFILE")
#撰寫草稿
gm_create_draft(email)
#直接寄出
gm_send_message(email)



avatar-img
7會員
36內容數
寫一些自己覺得有趣的事情
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
金吉的沙龍 的其他內容
最近遇到了一個思考有點久的問題,如何將數值不同的樣品進行分組,同時每組的總和不能超越固定的上限值,且某些樣品不能被分在同一組。雖然規則並不困難,但是人工進行分組卻頗花時間,是不是有可能自動化處理這個步驟?如果有可能的話想要產出多個不同的分組方法,最後由人工選擇最佳的分組方式。
最近遇到了一個思考有點久的問題,如何將數值不同的樣品進行分組,同時每組的總和不能超越固定的上限值,且某些樣品不能被分在同一組。雖然規則並不困難,但是人工進行分組卻頗花時間,是不是有可能自動化處理這個步驟?如果有可能的話想要產出多個不同的分組方法,最後由人工選擇最佳的分組方式。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在職場上,有效的溝通對於工作的順利進行至關重要。透過本文,您將瞭解到在寫 email 時應避免的錯誤,以及如何練習補足溝通上的代溝。作者分享瞭解決溝通問題的技巧,並敦促讀者注意重要的溝通技能比單字量更重要。
Thumbnail
這篇文章分享如何透過免費電子郵件課程提供價值,建立信任,並引導訂閱者購買付費產品。透過豐富內容、獨特風格,以及AI的幫助,讓你的需求看起來更具吸引力。
Thumbnail
這篇文章介紹瞭如何寫出專業的電子郵件開頭句,分享了六種必備的實用模板,讓你可以根據不同情境或目的,填入關鍵詞套用,讓你的email看起來超專業!
Thumbnail
在現代職場中,電子郵件是不可或缺的溝通工具。無論是與同事、客戶、還是合作夥伴交流,電子郵件都是最常用的方式之一。然而,並非所有人都能寫出有效且專業的電子郵件。一封好的電子郵件,可以讓你在職場中脫穎而出,並帶來以下好處:提高工作效率:清晰簡潔的電子郵件,可以讓收件人快速掌握重點,並做出回應。
Google Workspace 你會用了嗎?全面教學來啦!不管是團隊協作還是企業溝通,都可以通過Google Workspace的全套辦公軟體工具來完成!特別是深受企業歡迎的Gmail,我們也為你準備好了一系列設定攻略,簡單幾步就能完成!
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
要持續性強化信件中的表達能力,條列式、長話短說、縮短對方閱讀的時間、提高對方快速理解的效率。
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
今天紀錄的是因應工作需要而學習的小技能。 我想達到的目標:當欄位裡面出現「寄出」這個關鍵字的時候整欄變色,以辨別該項目的狀態。
Thumbnail
工作時常會需要固定發廣告信,或業務開發信的話,可以考慮用google app script,呼叫gmail 的方式來處理。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在職場上,有效的溝通對於工作的順利進行至關重要。透過本文,您將瞭解到在寫 email 時應避免的錯誤,以及如何練習補足溝通上的代溝。作者分享瞭解決溝通問題的技巧,並敦促讀者注意重要的溝通技能比單字量更重要。
Thumbnail
這篇文章分享如何透過免費電子郵件課程提供價值,建立信任,並引導訂閱者購買付費產品。透過豐富內容、獨特風格,以及AI的幫助,讓你的需求看起來更具吸引力。
Thumbnail
這篇文章介紹瞭如何寫出專業的電子郵件開頭句,分享了六種必備的實用模板,讓你可以根據不同情境或目的,填入關鍵詞套用,讓你的email看起來超專業!
Thumbnail
在現代職場中,電子郵件是不可或缺的溝通工具。無論是與同事、客戶、還是合作夥伴交流,電子郵件都是最常用的方式之一。然而,並非所有人都能寫出有效且專業的電子郵件。一封好的電子郵件,可以讓你在職場中脫穎而出,並帶來以下好處:提高工作效率:清晰簡潔的電子郵件,可以讓收件人快速掌握重點,並做出回應。
Google Workspace 你會用了嗎?全面教學來啦!不管是團隊協作還是企業溝通,都可以通過Google Workspace的全套辦公軟體工具來完成!特別是深受企業歡迎的Gmail,我們也為你準備好了一系列設定攻略,簡單幾步就能完成!
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
要持續性強化信件中的表達能力,條列式、長話短說、縮短對方閱讀的時間、提高對方快速理解的效率。
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
今天紀錄的是因應工作需要而學習的小技能。 我想達到的目標:當欄位裡面出現「寄出」這個關鍵字的時候整欄變色,以辨別該項目的狀態。
Thumbnail
工作時常會需要固定發廣告信,或業務開發信的話,可以考慮用google app script,呼叫gmail 的方式來處理。