GASのメール送信は実行上限に注意!残り回数確認と上限以上のメールを送る方法

2021年1月23日

Google Apps Scriptのメール送信機能は便利な機能ですが、無料のGoogleアカウントの場合、1日の送信回数が100通までといった上限が設けられています。

GASによるメール送信の制限事項と、残り送信回数を確認する方法、さらに上限回数を超えてメールを送りたい場合の対処法を解説します。

Google Apps Scriptによるメール送信

Google Apps Script(GAS)には、メール送信に関する機能としてMailAppクラスが用意されています。

このMailAppクラスで使用できるsendEmailメソッドに対し、メール送信に必要な引数を指定することで、GASスクリプト実行でメールを送ることができます。

Google Apps Script(GAS)でメール送信方法まとめ!コード1行で自動メールを送る

上記の記事ではMailApp.sendEmailメソッドを使い、たった1行のGASコードを実行するだけで、メールを自動送信する方法を解説しています。

無料アカウントのGASメール送信は1日100通の上限

Google Apps Script(GAS)のメール送信機能には、実行回数に制限が用意されています。

無料のGoogleアカウントの場合、GASのメール送信回数は1日100通が上限です。

Google Apps Scriptによるメール送信の上限回数についてGoogleのリファレンスで無料アカウントは1日100通に制限とある
Google Developersのリファレンスより

それ以上送信しようとすると、上限に達したとしてメール送信がエラーしてしまいます。

なお、上記の表には、右側に「Google Workspace accounts」という有料アカウントの場合も書かれています。

有料のGoogle Workspaceアカウントの場合は、15倍となる1500通のメール送信が可能です。

GASメール制限はプロジェクトではなくアカウント単位

Google Apps Scriptのメール機能に設けられている上限は、残念ながらプロジェクト単位ではなく、アカウント単位です。

1つのGASプロジェクトでメール送信数が1日100通ではなく、1アカウントの全プロジェクトで合計100通までとなっています。

そのため、あるプロジェクトでメールをたくさん送りすぎると、他のプロジェクトでメール送信がエラーになることもあります。

複数宛先・CC/BCCもカウント対象なので注意

さらに、メールの送信回数は1回という形ではなく、宛先のメールアドレスの数だけカウントされます。

例えば、宛先に2つのメールアドレスを指定し、CCに1つのメールアドレスを指定してメールを送ると、合計3通という計算です。

自分宛てに受信確認のための宛先もカウント対象となり、CCやBCCに自分のメールアドレスを指定してもカウントされるため注意が必要です。

残り送信回数を確認する方法

Google Apps Script(GAS)で送信できるメールの残り回数を調べたい場合は、以下のメソッドを実行すると確認できます。

MailApp.getRemainingDailyQuota()

getRemainingDailyQuoataメソッドを実行した戻り値の数値が送信可能なメール数です。

Google Apps Script(GAS)でMailApp.getRemainingDailyQuota()を実行して残りのメール送信数を確認した実行結果

上記のGAS実行例では、あと92通のメールが送れることが実行ログで表示されています。

1日100件以上メールを送信したい場合は?

Google Apps Scriptのメール送信1日100通という制限は、メールを使った自動プログラムを稼働させていると超えることがあります。

メール送信のGASスクリプトを頻繁に利用している場合に、1日100通以上送る方法について対応方法を紹介します。

有料のGoogle Workspaceアカウントになる

お金は必要になりますが、最も簡単にメール送信回数の上限を突破できるのは、Googleの有料サービス「Google Workspace(G Suiteの後継サービス)」を利用することです。

Google Workspaceアカウントになれば、1日のメール送信上限が100通から1500通に拡張されます。

15倍の送信数まで増えるので、十分な送信回数になることに加え、上限が変わるだけなので、工夫や手間は不要です。

ただし、一番ミニマムのWorkspaceプラン「Business Starter」でも月額680円(年間8160円)なので、無料で使っているユーザーには、費用コストは増えるのがデメリットです。

無料のGoogleアカウントを複数用意する

2つ目のメール上限対策は、無料のGoogleアカウントを複数用意することです。

1つのGoogleアカウントだけならメール送信数は100件ですが、2つのGoogleアカウントで200件になります。

たくさんのメールをGASで送りたい場合は、スクリプトを複数アカウントで共有した上で、それぞれメール送付先を分担することで100件を超えるメールを送ることができます。

この方法は、無料のGoogleアカウントを増やすことなので費用はかからないのがメリットです。

ただ、2つのアカウントでGoogle Apps Scriptのスクリプトを管理する必要があるので、管理コストが増えるのがデメリットです。

一方のアカウントでメール送信のdoGet関数をデプロイして、もう一方のGASスクリプトから実行して合計200件までメールを送付する方法を解説しています。

GASで上限1日100件以上のメールを送信する方法!別アカウントのGASをデプロイして実現

上記の方法であれば、フォーム入力時のトリガー実行などでも、2つのアカウントで1日に合計200通メール送信が可能です。

GASでGmailの下書きを作成し、手動送信する

3つ目のメール上限対策は、Google Apps ScriptではGmailのメールの下書きを作成するところで留め、実際にはGmailの画面から手動送信することです。

1日100通の制限はGASスクリプト実行でメールを送信した際に発生するため、下書き作成ではカウントされません。

Gmailのアプリケーションからメールを送信する場合は、上限数が異なり、1日500通となっています。

そのため、GASのスクリプト下書きで作成しておき、あとからGmailのGUI上でメールを手動で送れば、100通以上送ることが可能です。

ただ、この方法は、送信のところが人手の介在が不可欠になるため、作業コストが発生するのがデメリットです。

1件のメールで大量の宛先に送るかつ、送信時に人間によるチェックを必ず行う場合は、このやり方も選択肢の1つです。

まとめ・終わりに

今回、Google Apps Script(GAS)でメール送信に設けられている送信回数の上限を紹介しました。

無料のGoogleアカウントの場合、1日100通の上限があり、宛先(CC/BCC)1件につきカウントされる方式です。

宛先ごとのカウントなので、意外と簡単に上限に達してしまうので、メールでエラーする場合は上限に達している可能性があります。

getRemainingDailyQuoataというメソッドをGASスクリプトで実行すれば、残り回数を確認できるので、エラー時は確認しましょう。

1日100通以上を送りたい場合は、費用かかっても問題ないなら有料のGoogle Workspace利用、無料で利用したい場合は複数アカウント利用やGmailによる手動操作を検討してみてください。