2021/9/9修正:直接開くURLは生成できないので、件名で検索させる
##参考
【GAS】Gメールの下書き(ドラフト)機能まとめ【サンプルソース付】
Google Apps Script Reference: Class GmailDraft
##やりたいこと
GASでメール下書きを取得し、下書きを直接開くURLを生成したい
##やったこと
Gmailを検索するURLから「下書き内で、件名を指定して検索→1件しか出ないはずなのでそれを開く」ようにする
""https://mail.google.com/mail/u/0/#search/in%3Adraft+"+ 件名
GmailDraftのクラスからmessageIdを取得して、draftを開くときのURLに入れ込む
"https://mail.google.com/mail/u/0/#drafts?compose="+ messageId
これでいける。
##コード
function getDraftUrl() {
const allMailDrafts = GmailApp.getDrafts();
const targetDraftSubject = allMailDrafts[0].getMessage().getSubject();
const targetDraftUrl = "https://mail.google.com/mail/u/0/#search/in%3Adraft+" +targetDraftSubject;
console.log(targetDraftUrl);
}
##メモ
受信トレイのメールに関しては直接開くURLが存在するが、下書きにはないようだった。
次善の案として、検索から直接指定する方法をとった。
記事を書いたときは開けていた直接URLだが今日見たら開けなくなっていた、なんでなのか
getMessageId()の方で取得したIDじゃないと開けない。
getId()は何に使うのかよくわからん。下書きを送信する(send())ときぐらい?
##あとがき
メール下書きを一括取得してチェックして一括送信する、みたいな要件があってチェック用にURLを生成したかった。ただ下書きはURLが違うようで参考になるページがなくちょっとかなり苦労したのでメモ。
stack overflow: Obtain a link to a specific email in GMail
Qiita: 【GAS】Gmailのメールのリンクの取得
このへんはうまくいかなかった。下書きじゃなくて受信メールなら↑でいけると思う。