グループアドレスのメアドでGoogle Apps Scriptからメールを送る手法【GAS】
時々現場の需要としてあるのが「グループアドレスのメアドをFromとしてメールをGoogle Apps Scriptで送信したい」というものがあります。通知系などの処理で実装されるケースが多く、利用する機会がなにげにあると思います。
しかし、躓くポイントがいくつかあるので内容についてまとめてみました。replyToなどをつけずにそのままグループアドレス宛に返信してもらえるので、外部向けの通知や、Slackなどのチャンネルへの自動投稿などでも便利です。
今回利用するクラス
通常のMailAppでのメール送信では、GASの作成者のアカウントを持ってして送信されてしまうので、Fromのアドレスをグループアドレスにすることは出来ません。しかし、GmailAppの場合は自身のアカウントに対してエイリアス追加してる場合は、そのエイリアスをFromとして指定が可能であるため、個人宛に返信されたり、また受け手からした場合には個人から送信されてるといったことを解消することが可能なので、次項の事前準備でまず、エイリアスを追加しておきましょう。
事前準備
グループアドレスの設定確認
グループアドレスの設定に於いて、以下の設定が外部に対して許可がされていないと、ご確認のメールが飛んでこないケースがあります。
- Googleグループを開く
- 対象のグループアドレスを開く
- 左サイドバーの下の方にあるグループ設定を開く
- 一般の下の方に「投稿できるユーザー」というのがあるので、ここが「ウェブ上のすべてのユーザー」となってるか確認
- なっていない場合は、GWSの管理コンソールにログインする
- ディレクトリのグループを開く
- 対象グループアドレスにカーソルを合わせて、設定を変更をクリック
- アクセスタイプの投稿できるユーザに対して、外部にチェックを入れてOKをクリックして保存します
- これでご確認メールが受け取れます。受け取ってアカウントが追加できたら、6.の外部に対してのチェックは外してもGASからメールは送れます。
図:Googleグループの設定確認
図:投稿出来るユーザが外部でオン
エイリアスの追加
自身のGmailアカウントに対して、グループアドレスをエイリアスとして追加しておく必要があります。以下の手順で追加します。自分自身がグループアドレスのメンバーとして参加している必要があります。
- 自分のGmailアカウント画面を開く
- 右上の歯車アイコンをクリックして、すべての設定を表示をクリック
- アカウントタブを開く
- 名前の項目があるので、他のメールアドレスを追加をクリック
- メールアドレス欄にグループアドレスを追加する。エイリアスとして扱うのチェックは入れてたまま。
- 別の返信先アドレスを指定をクリックして、同じくグループアドレスを入れてあげます。
- 次のステップをクリックする
- 確認メールの送信をクリックする
- ウィンドウを閉じる
- グループアドレス宛にご確認というメールが届くので、please click the link below to confirm your requestの下にある長いリンクをクリックする
- 確認というボタンをクリックする
- すると、4.で追加したグループアドレスが使えるようになる。
図:ここでグループアドレスを追加する
コードと結果
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//グループアドレスをもってしてメールを送る function sendGrpMail() { let target = 'ここに送信先アドレスを入れる'; let subject = 'ここにメールのタイトルを入力する'; let body = 'ここにメール本文をいれる'; //Fromを書き換える let options = { from: 'ここにグループアドレスを入力する' }; //GmailAppでもって送信する GmailApp.sendEmail( target, subject, body, options ); } |
コード自体は非常に単純ですが、MailAppで送る場合と異なり、optionsにてfromを指定できます。このFromは自身が事前準備で追加したエイリアスや、個人のディレクトリにて追加しておいたエイリアスのアドレスを使うことが可能です。
利用可能なエイリアスは「let aliases = GmailApp.getAliases()」で一覧を取得することが可能です。
実行結果
実際に送信してみると、受け手側にはFromがグループアドレスとしてメールが送られてきます。できればわかりやすいようにGmailAppにて送信する場合には、メアド直よりかは、optionsにname属性としてつけておくと尚良いでしょう。
1 2 3 4 5 |
//Fromを書き換える let options = { from: 'ここにグループアドレスを記入する', name: "テストメール from GAS" }; |
図:グループアドレスがFromで飛んできた