メールの自動送信を設定したいと思ったことはありませんか?GoogleスプレッドシートとApps Scriptを使えば、簡単に実現できます。この記事では、GmailAppサービスを用いたメール自動送信の方法を解説します。具体的なコード例と手順を紹介しますので、初心者の方でも安心して進められます。
【要点】GmailAppでスプレッドシートからメールを自動送信する方法
- Apps ScriptのGmailApp.sendEmailメソッド: スプレッドシートのデータを元にメールを送信します。宛先、件名、本文を柔軟に設定できます。
- トリガー機能(時間主導型): 定期的な実行を自動化します。毎日や毎週のバッチ送信に便利です。
- スクリプトの権限設定: 初回実行時にアカウントへのアクセス許可が必要です。正しく承認することでエラーを防げます。
- 送信制限の理解: GmailAppには1日あたりの送信上限があります。大量送信の場合は制限を考慮する必要があります。
ADVERTISEMENT
目次
Apps ScriptとGmailAppでできること
Apps ScriptはGoogleスプレッドシートに組み込まれたプラットフォームで、Googleサービスを操作するコードを実行できます。GmailAppサービスを使うと、スプレッドシートからメールを送信できます。例えば、フォームの回答が届いたら自動返信を送る、在庫が少なくなったら担当者に通知する、毎日の売上レポートをメールで配信するなどの処理が可能です。事前にGoogleアカウントが必要です。スクリプトの記述にはJavaScriptの基本的な知識があるとスムーズですが、この記事で例を示しますのでコピーして使えます。
メール自動送信を実装する手順
1. スプレッドシートを準備する
- スプレッドシートを作成する
Googleドライブから新しいスプレッドシートを作成します。メール送信に使うデータを入力しましょう。例えば、A列にメールアドレス、B列に件名、C列に本文を用意します。 - データを入力する
実際の送信先の情報を入力します。テスト用に自分のメールアドレスを入れておくと安全です。
2. スクリプトエディタを開く
- 拡張機能メニューを開く
スプレッドシートのメニューから「拡張機能」をクリックし、「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。 - プロジェクト名を変更する
デフォルトでは「無題のプロジェクト」となっています。わかりやすい名前に変更しましょう。
3. スクリプトを記述する
- コード.gsにサンプルコードを貼り付ける
以下のコードをエディタに貼り付けます。function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); for (var i = 1; i < data.length; i++) { var email = data[i][0]; var subject = data[i][1]; var body = data[i][2]; GmailApp.sendEmail(email, subject, body); } } - 関数を保存する
Ctrl+S(Windows)またはCmd+S(Mac)で保存します。初めての場合はプロジェクトに名前を付けて保存します。 - 関数をテスト実行する
ツールバーの「実行」ボタンをクリックし、関数名「sendEmails」を選択して実行します。初回は権限の承認ダイアログが表示されるので「許可」をクリックします。
4. トリガーを設定する(自動化)
- トリガー画面を開く
スクリプトエディタの左側の時計アイコン(トリガー)をクリックします。 - 新しいトリガーを追加する
右下の「トリガーを追加」ボタンをクリックします。 - トリガーの詳細を設定する
「実行する関数」で「sendEmails」を選択します。「イベントのソース」で「時間主導型」を選び、「時間ベースのトリガーのタイプ」で「日付ベースのタイマー」を選びます。好みの時間帯を設定して保存します。 - トリガーが有効になっていることを確認する
トリガー一覧に追加されたトリガーが表示されれば完了です。設定した時間に自動でメールが送信されます。
よくあるエラーと対処法
権限エラーが発生する
初回実行時に「承認が必要です」という画面が表示されたら、権限を許可していない可能性があります。ポップアップを許可して、自分のアカウントを選んで進みます。許可後もエラーが出る場合は、スクリプトエディタの「実行」メニューから再度承認を試みます。それでも解決しない場合は、Googleアカウントのセキュリティ設定で「安全性の低いアプリのアクセス」を有効にする必要はありませんが、組織のポリシーによって制限されている場合は管理者に相談してください。
送信制限に達する
GmailAppの送信制限は、1日あたり100通(Google Workspaceアカウントでは1500通)です。大量のメールを送信する必要がある場合は、制限を超過しないようにスクリプト内でカウントし、一定数ごとに待機時間を入れるなどの対策をします。または、MailApp(さらに制限が厳しい)ではなくGmailAppを使用するようにしてください。
メールが届かない
送信後にメールが届かない場合は、まずスパムフォルダを確認します。また、正しくメールアドレスが入力されているか、件名や本文が空になっていないか確認します。スクリプトのエラーログを確認するには、スクリプトエディタで「表示」→「ログ」を選択します。エラーメッセージがあればそれをもとに対処します。
ADVERTISEMENT
GmailAppと他の送信方法の比較
| 項目 | GmailApp | MailApp | 外部API(SendGrid等) |
|---|---|---|---|
| 送信制限 | 1日100通(G Suiteは1500通) | 1日100通 | プランによる(月間数千〜無制限) |
| 送信者アドレス | 自分のGmailアドレス(またはエイリアス) | 自分のGmailアドレスのみ | 任意のアドレス(設定次第) |
| HTMLメール対応 | 対応(htmlBodyオプション) | 非対応 | 対応 |
| 添付ファイル | 対応(GmailApp.sendEmailのオプション) | 非対応 | 対応 |
| セットアップの手間 | 簡単(スプレッドシート内で完結) | 簡単 | やや複雑(APIキー取得など) |
GmailAppはスプレッドシートとの連携が容易で、HTMLメールや添付ファイルにも対応しています。大量送信が必要な場合は外部APIの利用を検討しましょう。
まとめ
この記事では、GoogleスプレッドシートのApps ScriptとGmailAppサービスを使ってメールを自動送信する手順を解説しました。具体的なコード例とトリガーの設定方法を理解できたはずです。まずはテスト送信で動作を確認し、その後、実運用に合わせて本文や件名を動的に生成するなど応用してみてください。例えば、スプレッドシートの関数と組み合わせて集計結果をメールで送ることも可能です。自動化によって業務効率を大幅に向上させましょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
