Google Apps Script でメール送信を行う方法。超具体解説

GASでメールを送信したい。
送る人それぞれで、内容を変えたものを送りたい。

今回は、このようなGASでメールを送信したい人に向けて記事を書いていきます。

プラスアルファとして、ただメールを送るだけでなく、送る人それぞれに送るメールの内容を変えたいという人にも見本となるコードを解説していきます。

実際に使えるコードを使って解説していきます。

この記事で、少しでもGASについて理解して、メール送信ができるようになって欲しいと思います!!

今回の実装内容

スパムメールのブロック、フィッシングメールの警告ポップアップ、ネットワークセキュリティの概念。警告ウィンドウ付きの自宅でラップトップコンピュータで作業しているビジネスウー� - メール ストックフォトと画像

今回の実装の内容は以下2点をポイントとして解説していきます。

  1. メール送信を実装するコードとその内容解説
  2. 送信者、送信内容をメールごとに変えたい場合のコード例

今回の実装では、まずメール送信を実装するコードについて解説していきます。

ここで、解説するコードが一番基本的なメール送信ができるコードになります。

メール送信のみを行いたい場合は、1つ目の解説のまでで問題ないでしょう。

その後に、よくあるケースを想定してのコード例を解説していきます。

文面が同じものを送信することは、普通のメールでも各アドレスを頑張って手入力すればできるかと思います。

ただ、メールアドレスに対して、送信する内容も一部変えたい場合などが往々にしてあります。

例えば、各アカウント情報の周知などです。

各アカウントは個人ごとに内容が違いますよね。

そのため、それぞれにアカウント情報をメールで送付する場合、文面をそれぞれで作らないといけないので、結構大変です。

このような場合を想定して、文面も各メールごとに変えれるようなコード例を解説していこうと思います。

あべべ

実際に現場で直で使えるようなコードを解説していきます。

ぜひ、参考にしてみてください。

メール送信するコード

ラップトップキーボードの木製ブロックに新しい電子メールシンボル - メール ストックフォトと画像

まず、メール送信するコードです。

function sendEmail(){
  const email = "example@example.co.jp"//メールアドレス
  const title = "テストタイトル"
  const strBody = "テストメール本文"
  const bccmail = email;//bccのメールアドレス
  const ccmail = email;//ccのメールアドレス


  
  var recipient="example@example.co.jp"; //送信先

  //var report = DriveApp.getFileById("0B8JD3DtPwZbvQkVOQlR6anVKeUk"); //file単体になっている点に注意

  /* メールを送信 */
  
  let response = MailApp.sendEmail(
      recipient, //送信先
      title,  //メールタイトル
      strBody,//本文
      {
          name: "私からのメールだ",//表示する名前
          //bcc: bccmail
          //cc: ccmail,
          //attachments: [report] //添付をファイル
      }
  );
} 

実際に送ると以下のようになります。

差出人のメールアドレスは、あなたがGASで作成しているアカウントになります。

あべべ

メールアドレスの部分は、exampleで存在しないものになっているので、実際に送信したい正しいアドレスに変更してくださいね!

あべべ

GASには、MailApp の他に、GmailAppが存在します。

そちらでもメールは送れるはずなのですが、私のアカウントではなぜかGmailにのみメールが送信できませんでした。

なので、今回は、私と同じような方もいるかもしれないので、MailAppにて紹介しています。

送る人それぞれでメールの内容を変える方法

赤い男は人と線でつながっています。人事管理。従属。リーダーシップスキル。人と人の間のメディター。利害関係の代表。教育、経験の交換。 - 一斉送信 ストックフォトと画像

では、ここまで、メールの自動送信の方法を解説していきました。

ここからは、各送信先によってメールの内容を変えるコード例を紹介していきます。

手順として、今回は次の順番で行います。

実装手順

①スプレッドシートに送信先情報と本文内容を書く

②スプシから情報を拾えるようコードを整理

①スプレッドシートに送信先情報と本文内容を書く

今回は、このようなスプシを用意しました。

アカウントを発行したので、それを書くメールアドレスに通知するということを想定しています。

データがこのように羅列している場合に使うことができます。

②スプシから情報を拾えるようコードを整理

スプシの情報を処理できるようにコードを編集していきます。

var data_sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("メール内容");

function mailing() {

  for (let row = 2; row <= data_sheet.getRange(1, 1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); row++) {
    let email = data_sheet.getRange(row, 1).getValue();
    let userid = data_sheet.getRange(row,2).getValue();
    let pw = data_sheet.getRange(row,3).getValue();
    let title = "アカウントを発行しました"
    let strBody = "あなたのアカウントを発行致しました。"+"\n\n"+"ユーザー名\n"+userid+"\n\nパスワード\n"+pw+"\n\n"
    console.log(email)
    console.log(title)
    console.log(strBody)
    sendEmail(email,title,strBody);
  }
}


function sendEmail(email,title,strBody){
  const bccmail = email;//bccのメールアドレス
  const ccmail = email;//ccのメールアドレス

  var recipient=email; //送信先


  /* メールを送信 */
  
  let response = MailApp.sendEmail(
      recipient, //Toアドレス
      title,  //メールタイトル
      strBody,//本文
      {
          name: "私からのメールだ",//差出人
          //bcc: bccmail
          //cc: ccmail,
          //attachments: [report] //添付をファイル
      }
  );
} 

二つの関数で実行するようにしています。

mailing 関数

スプシの行全体を取得しています。for文で、取得したものを繰り返すようにしています。

let email = data_sheet.getRange(row, 1).getValue();
let userid = data_sheet.getRange(row,2).getValue();
let pw = data_sheet.getRange(row,3).getValue();

この部分で、特定の列の送信先メールアドレス、アカウント名、パスワードを取得しています。

その後、sendEmail関数に情報を渡しているのです。

sendEmail関数

sendEmail関数は先ほど解説した内容と同じです。

以下3つの変数は、mailing関数から渡される情報なので、引数として設定しています。

  • email
  • title
  • strBody
あべべ

これで、コード例の解説は終了です。

実際に私はこのコードを業務内で活用しています。

皆さんも使い道を見つけて使ってみてください!

まとめ

今回は、GASでメール送信を自動化する方法を解説していきました。

実際に活用してみて初めて意味があるものです。ぜひ業務の中で活かしてみてください!

(Visited 4 times, 1 visits today)