2022-05-06

[SendGrid]寄出"待處理"的email

最近寫了一支排程監控程式:每分鐘執行一次,會先透過WinSCP撈取FTP上的回覆檔,檢查是否有失敗訊息,並整理成清單透過SendGrid,寄到自己信箱。

開發過程蠻順利的(因為網路上都有很多範例程式),只花了1天的下班後空檔就搞定啦,所以剩下時間都在玩耍優化🤣

從現代人(我)的user story來看mail的頻率和習慣沒有以前那樣頻繁和依賴,想讓Outlook提醒我要處理,而目前隨手可得的工具就是Task;而要把信件當作待辦,需要的就是旗幟(flag)裡的"待處理"分類。(後記:另外發現排程、log、always-on都是蠻有趣的課題 另外找時間研究)

搜尋關鍵字「outlook flag」、「flag follow up」都查不太到,但確認了一件事,這個flag其實就是header的一種。於是便想說自己try try看一般mail和有flag的mail差在哪裡。參照https://www.howtogeek.com/442317/how-to-read-message-headers-in-outlook可以找到我們收到的mail的屬性內容,我試著寄給自己兩封信,一封有flag,一封沒有。


再來查看兩者的檔案>內容>網際網路標題,比對下可以發現有flag的那封多了一行:X-Message-Flag: Follow up(中文版好像是X-Message-Flag: =?big5?B?q92zQrJ6?=)


如此一來,flag的秘密就被破解了!再來就是加到程式碼裡囉~("Reply-By"是到期時間)

// msg.AddHeader("X-Message-Flag", "=?big5?B?q92zQrJ6?=");
msg.AddHeader("X-Message-Flag", "待處理");
msg.AddHeader("Reply-By", DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 09:30:00").AddDays(1).ToString("ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"));

沒有留言:

張貼留言