GAS ポートフォリオ

【MailAppとGmailApp】GASを使って簡単にメールを送信する方法

GASを使って簡単にメール送信する方法

GAS(Google Apps Script)とは、Googleが開発したプログラミング言語で、ExcelでいうVBA(マクロ)みたいなものです。
 
 
そんなGASを使えば、簡単にメールを送信することができます。

GASを使って簡単にメール送信する方法

GASでメール送信を行うには、MailAppクラス、もしくはGmailAppクラスを使用します。本記事では、その両クラスの使用方法を説明します。
 
 
MailAppクラスはメール送信の機能に特化しているのに対し、GmailAppクラスは、下書き作成、既読処理、アーカイブ移動など、Gmailアプリに備わる機能が実装されています。
 
 
メールの送信に関する違いのみを言うと、GmailAppだと送信元アドレス(From)を変更することができます。
 
 
送信元アドレスを自分のアドレス以外にしたい場合は、GmailAppを使用してください。
  
 
もっと簡単に教えて!?という方はこちら

たった3行でメール送信するプログラムを書く
参考【プログラミング未経験者向け】たった3行でメール送信するプログラムを書く

こちらの記事、完全プログラミング未経験・初心者向けです!プログラミングと聞くと、一気に心を閉ざす人は多いのではないでしょうか!?僕自身もその経験がありますが、意外とプログラミングは難しくない、そして実は楽しいんです!まずは、3行のプログラムを書いて、プログラミングに触れてみましょう!

続きを見る

MailApp

MailApp

MailAppクラスに用意された関数は以下の5つです。

  • sendEmail(message)
  • sendEmail(recipient, subject, body)
  • sendEmail(recipient, subject, body, options)
  • sendEmail(to, replyTo, subject, body)
  • getRemainingDailyQuota()

sendEmail(message)

関数名の通り、メールの送信を担ってくれる関数です。他4つのsendEmai()の中で、1番柔軟性のある記述形式です。
 
 
戻り値は「Void」で、引数の「message」は、JavaScript形式の文字列です。メールの本文ではないので、注意してください。
 
 
「message」に使用できる拡張パラメータは以下の11個です。

to(String型)
宛先アドレスです。複数アドレスの場合は、カンマで区切るか、配列を渡します。
 
 
cc(String型)
ccアドレスです。複数アドレスの場合は、カンマで区切るか、配列を渡します。
 
 
bcc(String型)
bccアドレスです。複数アドレスの場合は、カンマで区切るか、配列を渡します。
 
 
subject(String型)
件名です。
 
 
body(String型)
本文です。htmlBodyを使用する場合は、bodyは無視されます。
 
 
htmlBody(String型)
html本文です。HTML形式で本文を作成できます。
 
 
inlineImages(Object型)
インライン画像です。htmlBody内で<img src = "cid:imageKey">を定義し、BlobのKey名をimgeKeyに指定すると、画像の表示が可能です。詳しくはサンプル2を参照してください。
 
 
attachments(BlobSource[]型)
添付ファイルです。Web上のファイルか、Gドライブ上のファイルが対象です。
 
 
name(String型)
差出人名です。指定しないと、Googleアカウントのユーザ名が設定されます。
 
 
replyTo(String型)
返信先アドレスです。noReplyがTrueだと無視されます。
 
 
noReply(Boolean型)
trueにすると、返信ができなくなります。GoogleWorkspaceアカウントでのみ使用可能です。
 
 
以下に2つのサンプルコードを記述しました。ファイルIDやメールアドレスなどの各パラメータはアレンジしてください!

sendEmail(recipient, subject, body)

基本的にsendEmail(message)と同じ内容で、引数のパラメータが変わっただけです。
 
 
recipient」は、カンマ区切りの宛先アドレス(to)のことです。カンマで区切ることで複数のアドレスを指定できます。
  
 
subject」「body」にはそれぞれ、件名と本文が入ります。

sendEmail(recipient, subject, body, options)

引数の最後に「options」が指定できるようになります。オプションは、sendEmail(message)からto、subject、bodyを除いた8個です。
 
 
以下サンプルコードです。

sendEmail(to, replyTo, subject, body)

同じく引数のパラメータが変わっただけです。「to」=「recipient」でカンマ区切りのアドレスです。
 
 
replyTo」には、返信先アドレスを指定します。

getRemainingDailyQuota()

getRemainingDailyQuota()は、メールの送信を行う関数ではないですが、その日に送信できるメール数を「Integer型」で取得します。
 
 
Quotas for Google Servicesによると、GASを使用したメール送信数には制限があります。
 
 
通常アカウントの場合は1日100通、Google Workspaceアカウント(旧G Suite※)の場合は、1500通までです。
※2020年10月6日に「G Suite」から「Google Workspace」にリブランディングされました。
 
 
他にも本文サイズや添付ファイルサイズ、URL長さなど、メール送信の制限項目がいくつもあります。無制限ではないことを覚えときましょう。

GmailApp

GmailApp

GmilAppクラスには多くの機能が用意されていますが、メール送信を行う関数は以下の2つです。

  • sendEmail(recipient, subject, body)
  • sendEmail(recipient, subject, body, options)

sendEmail(recipient, subject, body)

MailAppと同様に、「recipient」はカンマ区切りの宛先アドレス(to)のことです。カンマで区切ることで複数のアドレスを指定できます。
 
 
subject」「body」にはそれぞれ、件名と本文が入ります。

sendEmail(recipient, subject, body, options)

MailAppと同様、引数の最後に「options」が指定できるようになります。「options」に使用できる拡張パラメータは、以下の9個です。
 
 
cc(String型)
ccアドレスです。複数アドレスの場合は、カンマで区切るか、配列を渡します。
 
 
bcc(String型)
bccアドレスです。複数アドレスの場合は、カンマで区切るか、配列を渡します。
 
 
htmlBody(String型)
html本文です。HTML形式で本文を作成できます。
 
 
inlineImages(Object型)
インライン画像です。htmlBody内で<img src = "cid:imageKey">を定義し、BlobのKey名をimgeKeyに指定すると、画像の表示が可能です。詳しくはサンプル3を参照してください。
 
 
attachments(BlobSource[]型)
添付ファイルです。Web上のファイルか、Gドライブ上のファイルが対象です。
 
 
from(String型)
送信アドレスです。MailAppでは使用できません。
 
 
name(String型)
差出人名です。Googleアカウントのユーザ名が設定されます。
  
 
replyTo(String型)
返信先アドレスです。noReplyがTrueだと無視されます。
 
 
noReply(Boolean型)
trueにすると、返信ができなくなります。GoogleWorkspaceアカウントでのみ使用可能です。
 
 
以下に2つのサンプルコードを記述しました。ファイルIDや各パラメータは自由に変更して下さい!

おわりに

以上です。グーグルアカウントさえ持っていれば、誰でも簡単にメールが送れるので、GASは非常に便利です。プログラミングに全く触れたことのない人も、是非試してみてください!
 
 
また、GmailAppで無効な宛先アドレス使用した場合や、添付ファイルが存在しない場合はエラーになってしまうので、注意して下さい。
 
 
お疲れ様でした!

参考【知っとくとお得◎】メール設定で今後困らない知識を5分で理解する

OutlookやiPhoneでメールアカウントを追加したい時、SMTP、POP3、IMAP、SSLなどの言葉が出てきます。数年間意味が分からないまま、無心で設定を行っていました(笑)が、いざ勉強してみると簡単じゃん!!ということで、忘備録もかねて、メールの設定項目と仕組み・流れを簡単に説明していきたいと思います。

続きを見る

-GAS, ポートフォリオ
-,

© 2022 まいふぁんず