跳到主要內容

RPA-Uipath(5)-如何讀取Mail與取得Mail的資訊

本篇主要介紹Uipath取得mail相關資訊與附件的方法,因為mail的種類眾多,本範例以Gmail為例。首先在使用Uipath取得Gmail相關資訊前須對Google帳戶的安全性進行兩階段驗證設定,設定方式如下:
Step1. 點選”管理你的Google帳戶”
Step2. 點選”安全性”à”兩階段驗證”à點選”開始使用”
Step3. 依Google所提示步驟,您最後會取得一組密碼,請務必將此密碼記下。

接下來要開始使用Uipath擷取mail相關資訊,一開始我們先使用Get Password 儲存mail登入的密碼,此時密碼不是使用您真正的密碼而是使用剛剛兩階段驗證後取得的密碼,並儲存於變數password。
接下來使用Get IMAP Mail Messages來取得mail的相關資訊,在使用Get IMAP Mail Messages時必須在其屬性設定區塊進行一些參數設定。Port欄位填入993,Server欄位填入"imap.gmail.com",Email欄位填入您的Email,Password欄位填入變數password,Message欄位我們用MailMessage變數填入


Mail的相關資訊都會存在MailMessage變數中,我們可以用For Each迴圈逐一取得mail的相關資訊。For Each的屬性區塊部分也需要進行一些參數設定,List of item欄位需填入MailMessage變數,TypeArgument則須設定為System.Net.Mail.MailMessage。
設定完成後,我們先用Write Line將信件的主旨印出做為測試(這邊我們只印出前5封信件的主旨,可在Get IMAP Mail Messages的屬性區塊中Top欄位中設定),如果要印出信件主旨,需要用item.Subject屬性,如要印出其他資訊,我們將常用的幾個列在以下表格:

最後,有些信件會附帶一些附件,我們如何將這些物件儲存下來呢?

這邊只需要用到Save Attachments即可。我們將其放在迴圈內以下載每個有附件的mail的附件,第一個輸入列填入迴圈變數item(在迴圈中就是代表信件),第二個數入列填入下載後儲存的資料夾位置。執行後,可到資料夾中檢查是否有將附件下載下來。

留言

這個網誌中的熱門文章

RPA-Uipath筆記(1) - 如何從網路上下載資料並存至指定路徑

最近在做 RPA 相關專案時遇到了這個問題: 如何從網路上下載資料並存至指定路徑? 針對這個問題我們採取的解決方案是 先讓檔案下載到電腦的預設路徑,再將檔案移動到我們指定的資料夾 。 以下我們用下載政府公開資料平台的資料 ("https://data.gov.tw/dataset/116285") 為例, Uipath 的流程建立如下: 使用到了 Wait for Download 、 Move File 、 Delete File 三個 Activity , Wait for Download 中 Monitored folder 必須放瀏覽器中設定的下載檔案的預設路徑且關閉詢問儲存位置。 Downloaded file 則是設定一個變數名稱 downloadfile( 可自訂 ) ,此變數的資料型態是 FileInfo 。中間則放入下載的流程步驟,從下載開始到結束都會在此 Activity 中執行完畢,執行完後所下載的檔案的相關資訊都會被存放在變數 downloadfile 中。 接下來是將檔案從預設下載路徑中移至指定路徑,這裡就需要下載預設路徑與指定路徑,這兩個我們在流程一開始就建了了兩個變數 dnlo_path 、 asng_path ,寫法如下: dnlo_path = "C:\Users\" +system.Environment.UserName+ "\Downloads" system.Environment.UserName à VB 語法,代表目前電腦的使用者名稱。 asng_path = "D:\Bolg 資料 \Uipath\Uipath(1)" Move File Activity 中 From 要放入目前檔案的位置; To 則要放入檔案存放的指定的位置,但因為是要做檔案的移動,所以以上兩個路徑後面都要再加上檔案名稱,這時可以使用 downloadfile 這個變數的屬性值叫出檔案名稱( downloadfile.Name ),當檔案名稱是隨機變動的時候,非常好用。另外,特別值得注意的是, To 的部分在加上檔案名稱時,可以不用用原始檔案的名稱,這時可以同時達到修改檔名的效果。 Overwrite 的部分打勾代表再重複執行一次的時...

RPA-Uipath(6)-如何讀取檔案的相關日期與時間

這一篇我們主要要說明如何批次將檔案的 ” 建立時間 ” 、 ” 修改時間 ” 、 ” 存取時間 ” 擷取出來,並整理匯出一個 Excel 表格。 在說明之前,我們簡單說明一下我們要擷取的是那些時間,我們可以針對任一個檔案,按下右鍵,選取內容,就會跳出該檔案的相關資訊,其中就有所謂的 ” 建立時間 ” 、 ” 修改時間 ” 、 ” 存取時間 ” ,如下圖所示,我們的目的就是將這些時間一一擷取出來。 要擷取以上的這些時間,需要用到 FileInfo() 物件,用法如下: 1.      建立時間: new FileInfo( 檔案路徑 ).CraeationTime.ToString( 日期時間格式 ) 2.      最後修改時間: new FileInfo( 檔案路徑 ).LastWriteTime.ToString( 日期時間格式 ) 3.      最後存取時間: new FileInfo( 檔案路徑 ).LastAccessTime.ToString( 日期時間格式 ) 因為我們的範例要批次讀取一個資料夾中多個檔案,所以會用到 Directory.GetFiles( 資料夾路徑 ) ,此函數會回傳資料夾中所有檔案的路徑並以 List 型態儲存。 以下我們說明我們如何用 Uipath 達到此目的: 我們一開始先用 FilePathList 變數儲存資料夾中所有檔案的路徑,建立一個空的 DataTable ,其中我們建立了四個欄位 ”FileName” 、 ”CreationTime” 、 "LastModifiedTime" 、 ”LastAccessTime” 。 接下來,利用 For Each 對每一個檔案,擷取以上四個資訊並分別用四個變數儲存 FileName 、 FileCreationTime 、 FileLastModifiedTime 、 FileLastAccessTime 並將次四個資訊放入 DataTable 中 ( 利用 Add Data Row 的 Activity) 。 For Each 結束後,我們將 DataTable 寫入 Excel 中並存於同一個資料夾,如下圖所示。