GASでメールを送信する2つの方法

GAScreateDraft,gmail,GmailApp,send,sendEmail

この記事ではGoogle Apps Script(GAS)を使ってメールを作成して送信する方法をご紹介します。

GASでメール送信を行う方法2選

GASでメール送信を行うには、下書きを一度読み込んで送付するGmailDraftクラスのsendメソッド、またはメール作成と送付を同時に行うGmailAppクラスのsendEmailメソッドを使います。

  • 作成済みの下書きを送付(GmailDraftクラスのsendメソッド)
  • メール作成と同時に送付(GmailAppクラスのsendEmailメソッド)

sendEmailメソッドについては実用的なサンプルスクリプト含め詳細を下記記事で解説しているので是非参考にしてください。

作成済みの下書きを送付(GmailDraft.sendメソッド)

下書きの送付は下記の手順で実行します。

  1. 下書き作成(GmailApp.createDraft)※GASで下書き作成しない場合は飛ばしてOK
  2. 作成済みの下書を取得(GmailApp.getDrafts)
  3. 取得した下書きを送信(GmailDraft.send)

下書の作成方法を詳しく知りたい方は下記の記事をご覧ください。

基本構文

下書きを送付するにはGmailDraft.sendメソッドを使います。送信するメール下書きはGASで作成してもGmailから作成してもどちらでもOKです。

GmailDraft.send()

  • GmailDraft:GmailApp.getDrafts()で取得したGmailの下書き

サンプルコード

 //メール内容
  let recipient = "aaa@gmail.com"; // 宛先メールアドレス
  let subject = "テストです"; // 件名
  let body = "ここは本文です"; // 本文

  let options ={
    cc: "cc@gmail.com", // ccアドレス
    bcc:"bcc@gmail.com", // bccアドレス
    noReply:true // 返信不要
  };

 //1.下書き作成(GmailApp.createDraft)
  GmailApp.createDraft(recipient, subject, body, options);

  //2.下書きを取得(GmailApp.getDrafts)
  //createDraftで作成した下書き以外存在しないため配列の先頭を取得
  let draft = GmailApp.getDrafts()[0];
  // console.log(draft.getMessage().getSubject()); //テストです

  //3.取得した下書きを送信(GmailDraft.send)
  draft.send();

2については特定条件を指定して検索・取得することができます。詳細は下記の記事で解説しているので併せてご覧ください。

実行時にGmailの権限承認を行う

Gmailのアクセスを含むコードを実行しようとするとGmailへの権限を求められます。各確認で肯定的に進めて承認作業を行ってください。

実行後に送信ボックスを見ると送信できていることが確認できました。

メール作成と同時に送付(GmailApp.sendEmailメソッド)

メール作成と送付を同時に行うにはGmailApp.sendEmailメソッドを使います。

基本構文

GmailApp.sendEmail(recipient, subject, body [, options])

  • recipient(必須):宛先のメールアドレス
  • subject(必須):件名
  • body(必須):本文
  • options(任意):下記参照

optionでは下記のようなパラメータを設定できます。

オプション名説明
attachmentsメールに添付するファイル
bccbcc に挿入するアドレス
cccc に挿入するアドレス
from送信元のアドレス
name送信元の表示名
replyTo返信先アドレス
noReplyメッセージに返信不要の場合はtrueを設定

中でもファイル添付してメール送信する方法は下記の記事で詳しく解説しています。

サンプルコード

 //メール内容
  let recipient = "aaa@gmail.com"; // 宛先メールアドレス
  let subject = "テストです"; // 件名
  let body = "ここは本文です"; // 本文

  let options ={
    cc: "cc@gmail.com", // ccアドレス
    bcc:"bcc@gmail.com", // bccアドレス
    noReply:true // 返信不要
  };

 //送信
  GmailApp.sendEmail(recipient, subject, body, options);

sendEmailメソッドを実行すると即座に送信されるので、重要な内容を含むメールの送信時には注意してください。初めて行う方には、上のパートのように試しに下書き保存してから確認し、その後送信することをお勧めします。

注意:GASでメール送信件数が100通/日の制限がある

GASでメールを自動送信できるのは便利ですが、送信件数100通/日が限られています。これはGoogle Work Placeの有料版にしても変わりません。大量に送る場合は余裕をもってスケジュールを組むようにしましょう。

まとめ

GASでメール送信する方法をご紹介しました。

  • 下書きを一度読み込んで送付するGmailDraftクラスのsendメソッドを使う
  • またはメール作成と送付を同時に行うGmailAppクラスのsendEmailメソッドを使う
  • GASにおけるメール送信件数は100通/日

この記事を書いた人

てつお
広告代理店出身、事業会社でWebマーケティングや開発の仕事をしている26歳です。プロフィール詳細はこちら
■Google広告認定資格|Google アナリティクス個人認定資格(GAIQ)|TOEIC920点