1
1

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 3 years have passed since last update.

GoogleAppsScriptでメールの個別自動送信プログラムを作る

Last updated at Posted at 2021-02-10

はじめに

プログラム言語を用いて、メールの一括送信がしたい。
pythonなどの言語を用いれば、自動送信は可能だが「自身のパソコンをシャットダウン」した状態で、メールを送信するためには自身のパソコン上で実行するのではなくGoogleAppsScript(以降GAS)というサーバーレスで実行する言語を選んだ。
プログラミング言語を初めてみたが、自身で実行環境を作るのが難しいという方向けに記事を書いた。

主な使い方はメールを一括で送りたいが、メールを送る人によって文面を変更したい場合に有効である。

目次

  1. GoogleAppsScriptとは
  2. GoogleAppsScriptでメールを送る
  3. GASでスプレッドシートを読み込む
  4. for文を使ってメールを一括で送る
  5. GASの上限を知る
  6. 参考文献

GoogleAppsScriptとは?

Googleが提供しているサーバーレスで各種Googleサービスをサーバー上から各種Googleサービスを実行できるスクリプトのことである。

”GoogleAppsScript”
https://script.google.com/home

にアクセスして、コードを書くことができる。
プログラミング言語は開発環境を作ることに一定以上のスキルが必要であるが、GoogleAppsScriptは開発環境のこうちくが不要のため上記アドレスにアクセスするだけで誰でもコードを書き始めることができる。

GoogleAppsScriptでメールを送る

/* 各データを準備 */
var strTo= 自分のメールアドレス"; //To 
var strName="VPN利用者様"; //苗字
var strFrom="admin@gmail.com"; //From
var strSender="admin@gmail.com"; //差出人

/* メール本文を準備 */
var strSubject = "【要回答】メールタイトル(回答期限:2019/4/30)【△△△より】";
var strBody = "メール本文";

/* メールを送信 */
GmailApp.sendEmail(
  strTo,
  strSubject,
  strBody,
  {
    from: strFrom,
    name: strSender
  }
); //MailAppではfromが設定できないとのこと

GoogleAppsScriptでメールを送る

GoogleAppsScriptでスプレッドシートから送信先を取得しつつメールを送るには、

を組み合わせることで実装した。
上記コードを貼り付けたら、

キャプチャ2.GIF

にアクセスをして、実行ボタン「▶」を押す。
そうするとGoogleAppsScript経由でメールが送られる。


//スプレッドシートのkeyを指定して取得
var spreadsheet = SpreadsheetApp.openById('1SRQIPPzVV2vwTeSsIpQrMt4DSuiO1P3eqGUcjrHc');
Logger.log(spreadsheet+"の読み込みを開始しました")//Spreadsheet

//これからGoogleAppsScriptでloopを開始します
//Number(i)が整数化しています
//iの変数がスプレッドシートの何行目までを読み込むかを設定します
for(var i  = 447 ; i <= 596; i++){

  //ログに出力(整数ループができているか?)
  Logger.log(Math.round(i));
  Logger.log(Number(i));
   
  //セル(A,i)を表示します。
  var range = spreadsheet.getRange("A"+Number(i));
  //4. 値を取得する
  var value = range.getValue();
  //セル(B,i)を表示します。
  var range2 = spreadsheet.getRange("B"+Number(i));
  //4. 値を取得する
  var value2 = range2.getValue();
 //セル(B,i)を表示します。
  var range3 = spreadsheet.getRange("C"+Number(i));
 //4. 値を取得する
  var value3 = range3.getValue();
  Logger.log(value);
  Logger.log(value2);
  Logger.log(value3);
  Logger.log(value+"@gmail.comにメールを送ります(本番アドレスに送信します)");

GoogleAppsScriptには実行上限が存在するので、大規模アプリを開発する人は要確認

”【GAS】Google Apps Scriptの制限・上限まとめ【実行回数・時間・容量】”
https://monoblog.jp/archives/2349

参考文献

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?