HOST
IMAP 郵件伺服器主機名稱,例如 imap.gmail.com。
PORT
IMAP 郵件伺服器連線埠號,預設為常用的 993。
TLS/SSL
IMAP 郵件伺服器是否需要TLS/SSL加密。
USERNAME
使用者在郵件伺服器設定的帳號名稱,可以夾帶 %FILENAME% 變數插入工作資料夾內檔名為 FILENAME 的TXT檔案內容,達到動態指定的效果。
PASSWORD
使用者在郵件伺服器設定的帳號密碼,支援 %FILENAME% 變數。
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')
api 物件
除了提供同步函式:api.files(), api.read(filename, encoding='utf8'), api.write(filename, text), api.rename(oldname, newname), api.remove(filename) 存取工作資料夾內的檔案;另外提供 mail 物件與相關非同步函式 api.mail.moveto(uid, mailbox), api.mail.remove(uid)
// 找到標題包含'促銷'的郵件
let mail = _.find(input, (m) => m.subject.includes('促銷'))
// 移到'Trash'郵件資料夾
await api.mail.moveto(mail.uid, 'Trash')
// 找到標題包含'中獎'的郵件
mail = _.find(input, (m) => m.subject.includes('中獎'))
// 移除郵件
await api.mail.remove(mail.uid)