18
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAppsScriptでGmailの下書きを、より簡単に作成する方法

Last updated at Posted at 2018-03-23

はじめに

"Gmail GoogleAppsScript 下書き"で検索すると、Gmail APIを利用する方法がヒットしますが、
2017年のアップデートでClass GmailAppにcreateDraftが追加され、より簡単に作成できるようになりました。

公式情報

createDraft(recipient, subject, body, options)

Creates a draft email message with optional arguments.

作例

日報や週報など、定型報告メールを作成しなければいけない場面は、まだ多いようです。

宛先、件名、本文の定型文の設定は自動化して、せめて手を抜き 本来の報告部分に注力しましょう。

おまけで、Utilities.formatDateを利用して、Excelライクな年月日フォーマットを当日の日付に変換しています。
(これにより、例えば件名に"YYYY年MM月dd日"と設定しておけば、当日の日付に変換されるので毎回、日付部分を書き換える必要がなくなります。)

コーディング

function myFunction () {
  var mailTo = "to@example.com"
  var mailCc = "cc@example.com"
  var mailTitle = "日報 yyyy年MM月dd日(ddd曜) ほげほげ"
  var mailBody = '' // テキストメールの場合はここに本文テキストを設定します。 
  var mailHtmlBody = 'yyyy年MM月dd日(ddd曜)分の、ほげほげの日報をお送りします。<br><br>[コメント]<br><br>本日もお疲れ様でした。'  // HTMLメールを作成する場合は、option引数に、htmlBodyとして本文を設定します。

  var date = new Date()
  
  mailTitle = myDateFormat(date, mailTitle)
  mailHtmlBody = myDateFormat(date, mailHtmlBody)
  var mailArgs = {
      cc: mailCc,
      htmlBody: mailHtmlBody
  }
  GmailApp.createDraft(mailTo, mailTitle, mailBody, mailArgs)
}

//テキストデータ「text」内の'yyyy', 'MM', 'dd', 'hh', 'mm', 'ss', 'aaa'の日付形式文字を、日時データdateに該当する年月日時分秒曜日に変換する
function myDateFormat (date, text) {
  var result = text
  var timeZone = 'Asia/Tokyo'
  // ’aaa’を曜日に変換
  var yobi = ['', '', '', '', '', '', '']
  var rep = yobi[date.getDay()]
  result = result.replace(/aaa/g, rep)

  // 'yyyy', 'MM', 'dd', 'hh', 'mm', 'ss'を年月日時分秒に変換
  var f = ['yyyy', 'MM', 'dd', 'hh', 'mm', 'ss']
  var i = 0
  for (i in f) {
    var reg = new RegExp(f[i] + '(.*?)', 'g')
    rep = Utilities.formatDate(date, timeZone, f[i])
    result = result.replace(reg, rep)
  }
  return result
}

テスト実行

myFuctionを選択した状態で「実行」ボタンを押します。
gas実行.png

初回実行時のみ、承認が必要です。「許可を確認」ボタンを押します。
gas承認.png

実行するアカウントを選択します。
gasアカウント選択.png

お使いのGmailの下書きフォルダに下書きメールが追加されます。
gas下書きフォルダ.png

gas下書きメール.png

自動実行のため、トリガー登録

繰り返し自動で下書きメールが作成されるように、トリガーを登録します。
gasトリガー.png

gasトリガー追加.png

下書きメールを追加するタイミングを設定します。
ここでは毎日、午前0時台に追加されるように設定しています。
gasトリガー設定.png

以上で、毎日指定の時刻に下書きメールが自動作成されます。

その他

Googleスプレッドシートと組合せて、セルから宛先・本文などを取得するようにすると、
非開発者の同僚にも利用してもらいやすくできます。

Hope you enjoy.

18
20
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?