ある業者の方から、複数の宛先情報へ一括でメールを自動送信したい…というご依頼をいただきまして、Googleスプレッドシート+Google Apps Script(GAS)+Gmailでの提案をさせていただきました。
Excel + VBA + Outlookでのメール自動送信ツールは開発したことがあるのですが、GASでは初めてだったので、色々調べながらゴールにたどり着いた感じです💦
GASは、Google関連サービスにおいて様々な処理の自動化を行えるだけではなく、関連サービス間の連携も柔軟に対応できて、使い道の幅が広がりますよね!また、Google関連サービスは無償でも提供されているので、敷居が低い点も魅力です!
■ MailAppとGmailAppの違い
GASで使えるメール操作系クラスとしてMailApp、GmailAppの2種類が提供されています。主な違いは以下のとおりです。
MailApp | GmailApp | |
メール送信機能 | 送信元アドレス(From)は固定(それ以外はGmailAppと同等) | 送信元アドレス(From)が変更可能 |
それ以外 | (メール送信機能特化型) | 下書き作成や既読処理などGmailサービス機能を網羅 |
■ MailAppの使用例
まずはMailAppクラスから説明します。
メールを送信する際の使い方は、次のとおりです。
□ MailApp.sendEmail(message)
message: 次の11種類の拡張パラメータから必要な項目を指定します。
to(String): 宛先を指定します。
bcc(String): bccアドレスを指定します。
cc(String): ccアドレスを指定します。
name(String): 差出人名を指定します。
noReply(Boolean): trueにすると、返信ができなくなります。GoogleWorkspaceアカウントでのみ使用可能です。
replyTo(String): 返信先アドレスを指定します。
Subject(String): 件名を指定します。
body(String): 本文を指定します。
htmlBody(String): html本文を指定します。
attachments(BlobSource[]): 添付ファイルを指定します。
inlineImages(Object): インライン画像を指定します。
他にも…
MailApp.sendEmail(recipient, subject, body)
MailApp.sendEmail(recipient, subject, body, options)
MailApp.sendEmail(to, replyTo, subject, body)
などありますが、前述の書式が最も使い勝手がいいと思います!
使い方は、こんな感じかな…
届いた側では、こんな感じになってます…
■ GmailAppの使用例
続いてGmailAppクラスです。
こちらは本来メール送信系以外にもさまざまな操作機能が提供されていますが、メールを送信する際の使い方は、次のとおりです。
□ GmailApp.sendEmail(recipient, subject, body)
□ GmailApp.sendEmail(recipient, subject, body, options)
recipient: 宛先アドレスを指定します。
subject: 件名を指定します。
body: 本文を指定します。
options: 次の9種類の拡張パラメータから必要な項目を指定します。
attachments(BlobSource[]): 添付ファイルを指定します。
bcc(String): bccアドレスを指定します。
cc(String): ccアドレスを指定します。
from(String): 送信元アドレスを指定します。
htmlBody(String): html本文を指定します。
inlineImages: インライン画像(オブジェクト型)を指定します。
name(String): 差出人名を指定します。指定しないと、Googleアカウントのユーザ名が設定されます。
noReply(Boolean): trueにすると、返信ができなくなります。GoogleWorkspaceアカウントでのみ使用可能です。
replyTo(String): 返信先アドレスを指定します。
MailAppとの大きな違いは、from(送信元アドレス)が指定できることにあります。
ただし、一点注意事項が!
送信元アドレスに指定できるメールアドレスは、GAS実行者が所有しているメールエイリアスに限られます。事前にメールエイリアスを設定されていない場合、fromでメールアドレスを指定してもエラーになりますのでご注意ください。
■ 複数の宛先指定
toやcc、bccに複数のメールアドレスを指定したい場合は、カンマで区切って指定しましょう。
届いた側で見ると、3つの宛先が指定されていることがお分かりいただけるかと。^^
■ まとめ
いかがでしたでしょうか?
あとはGoogleスプレッドシートに書かれたメール情報一覧(宛先や件名、本文の一覧)をもとにメールを自動送信し続ける…なんて処理は思いのままとなります。
また機会がありましたら、添付ファイルの扱いやHTML形式での送信などについて備忘録したいと思います。
Comentarios