Exchange Mail Reader

以 IMAP 讀取 Exchange Online 電子郵件,必須使用支援 Exchange Online 的帳號

TENANT ID (支援文檔變數)

使用者郵件帳號在 Azure Portal 開的 Azure Active Directory 租用戶識別碼:

CLIENT ID (支援文檔變數)

CLIENT ID 是上述的租用戶中新增註冊的企業應用程式用戶端識別碼。註冊步驟如下:

帳戶類型保留預設值單一租用戶,平台設定為 Web,URI 設定為 http://localhost:3650/callback

完成註冊後可以取得用戶端識別碼,接著繼續新增憑證或秘密

完成新增用戶端密碼後複製用戶端密碼的值:

CLIENT SECRET (支援文檔變數)

填入上述用戶端密碼的值。

SIGN IN

按下 SIGN IN 按鈕後會進行 Microsoft Account 的驗證,驗證成功後會自動帶入使用者電子郵件帳號,EMILY.RPA 才能使用這個郵件信箱。請注意:微軟會強制在 SIGN IN 後 90 天讓登入資訊過期,因此每 90 天需要回到模組介面重新登入一次 https://learn.microsoft.com/en-us/azure/active-directory/develop/configurable-token-lifetimes#refresh-and-session-token-lifetime-policy-properties

ACCOUNT

填完 TENANT IDCLIENT IDCLIENT SECRET 後,點擊 SIGN IN 會帶出瀏覽器讓使用者完成身分認證,並自動帶入 ACCOUNT

MAILBOX

郵件信箱名稱。

SINCE DAY(S) AGO

讀取自幾天前的郵件。

UNREAD ONLY

是否選擇只讀取未讀郵件。

input 物件陣列

在 input 物件陣列中的每個元素代表讀取自指定郵件信箱的每封郵件:

// 印出讀取到的每封郵件主旨與寄件者
input.forEach((mail) => {
  console.log('from:' + mail.from + ', title:' + mail.subject)
})

output 物件陣列

加入 output 陣列中的每個物件元素代表輸出表格的一列資料,物件中的 key 為表頭欄位,value 為該欄位在這一列資料的值,最後表格將被輸出成工作資料夾內的 output.csv 檔案。

// 將讀取的每封郵件文字欄位輸出到CSV,並且將附件檔案存檔
input.forEach((mail) => {
  output.push({
    from: mail.from,
    subject: mail.subject,
    date: mail.date.toLocaleString(),
  })
  
  if (mail.attachments.length > 0) {
    mail.attachments.forEach((att) => {
      api.write(att.filename, att.content)
    })
  }
})

// 指定表頭欄位
output.header.push('from','subject','date')

Last updated