【GAS】スプレッドシートからメール一斉送信

こんにちわ。たろ(@tarohibi)です。

今日は、「GASでスプレッドシートからメールアドレスを取得し、メールを送信する方法」をご紹介します。

やりたいこと

スプレッドシートのA列に、メールアドレスが一覧で記載されているとします。

そのメールアドレスに対して一斉にメールを送信したいとき、どうしますか?一つ一つ手動で送信するのは大変ですよね。

こういった場合、GAS(Google Apps Script)を使用すれば、一瞬で作成できます。

ということで、コードをご紹介していきます。

完成形

GAS(Google Apps Script)の導入方法に関しては、他サイトでも載っていますので割愛します。

やり方は簡単なんで、是非1度試してみて下さい。

上記をコード入力して、一度ファイルを閉じます。
再度オープンすると、「sendMails」という関数を選択し、「実行」をクリックしてみて下さい。

すると、プログラムが走り、指定したシートからメールアドレスを取得し、各アドレスにメールが送信されます。

各関数の意味と流れ

getRecipientEmailsFromSheet(sheetName): 指定したシートからメールアドレスを取得します。

取得するシートの名前を引数として受け取り、A列の空白を除外したメールアドレスの二次元配列を返します。

指定した名前のシートが存在しない場合はエラーをスローします。

sendMails(): 指定したシートからメールアドレスを取得し、各アドレスにメールを送信します。

シート名、メールの件名、メールの本文はコード内で定義されています。

基本的な流れは次のとおりです。

  • sendMails() 関数を実行します。
  • getRecipientEmailsFromSheet(SHEET_NAME) 関数が実行され、指定したシートからメールアドレスを取得します。
  • 取得したメールアドレスに対して、GmailApp.sendEmail(recipient[0], EMAIL_SUBJECT, EMAIL_BODY) を使用してメールを送信します。

コード解説(分からなくてOK)

適宜コメントを入れていますが、自分も書いていて難しいなと思った所を解説します。

ここでは、シートの最後の行を取得し、その範囲のデータを取得しています。これにより、シートのA列の全てのデータを取得できます。

この部分では、取得したデータから空白の行を除外(filter(row => row[0]))し、メールアドレスの二次元配列を作成しています。(map(row => [row[0]]))

これにより、メールアドレスだけのリストを作成します。

最後に、取得したメールアドレスのリストをループし、各アドレスにメールを送信します。メールの件名と本文はコード内で定義されています。EMAIL_SUBJECTとEMAIL_BODYを適宜修正下さい。

以上が、このコードの主な動作と解説です。

GASを使ってスプレッドシートからメールアドレスを取得し、一斉にメールを送信することができます。

まとめ

以上、「GASでスプレッドシートからメールアドレスを取得し、メールを送信する方法」についてお伝えしました。

使うだけであれば、コードを有効化すればすぐにでも使用できます。時限式にしたい場合は、トリガー導入すればカンタンにできます。

お手軽なので、お試し下さい。

ITGAS
スポンサーリンク
シェアする
たろをフォローする
お金らいふ

コメント

タイトルとURLをコピーしました