5分でできる!GASでメール送信のアウトルック自動化方法
オフィスで毎日繰り返し手動でメールを送信するのが面倒なんだけど、GASでOutlookを使って自動化できたら便利だと思ってさ…

猫男

catman
それは良い考えだ。GASでOutlookのメール送信を自動化する方法を教えてあげよう。
GASでOutlookのメールを自動送信する仕組みを理解する
まず基本を理解しよう。
GAS自身ではOutlookの直接操作はできない。
でも、MicrosoftのGraph APIを使えば実現可能だ。このAPIを通じて、Outlookのメールサービスと連携できるようになる。
Microsoft Graph APIの準備
Graph APIを使う準備が必要だ。Microsoft Azureポータルからアプリを登録して、APIアクセスの許可を確立する必要がある。
1. Azureポータルにアクセス: Azureポータルで新規アプリを登録し、API許可を構成する。
2. 必要なAPI権限の設定: Outlookメールの送信権限を設定し、それらを認可する。
3. クライアントIDとシークレットの取得: 後の手順でGASに設定するクライアントIDとシークレットをコピーすること。
Graph APIをGASで使う
GASでのプログラムはAPIのエンドポイントと通信する役割を果たす。このプロセスを理解しよう。
function sendOutlookEmail() {
var accessToken = getAccessToken(); // アクセストークンを取得する関数
var email = {
"message": {
"subject": "自動送信メール",
"body": {
"contentType": "Text",
"content": "これはGASから送信したテストメールです。"
},
"toRecipients": [
{
"emailAddress": {
"address": "recipient@example.com"
}
}
]
}
};
var options = {
"method": "post",
"contentType": "application/json",
"headers": {
"Authorization": "Bearer " + accessToken
},
"payload": JSON.stringify(email)
};
UrlFetchApp.fetch("https://graph.microsoft.com/v1.0/me/sendMail", options);
}
このスクリプトは、GASでOutlookメールを送信する基本的な例だ。
- sendOutlookEmail() はメールを送信する主関数。
- getAccessToken() を呼び出してアクセストークンを取得し、Graph APIで認証されたリクエストを送信する。
- email オブジェクトは送信するメールの詳細を含んでいる。宛先、件名、本文の情報をここで設定する。
- UrlFetchApp.fetch() を使って、Graph APIのメール送信エンドポイントに対してPOSTリクエストを送信。この時、options パラメータでリクエストオプションを指定する。
これなら、手動で毎回送信しなくても済むんだ!自勤に使いこなせたら、朝のルーチンはもっと楽になるね。

猫男
実践練習問題
以下のコードを使って、宛先メールアドレスを2つ以上追加する方法を考えてみよう。
function sendOutlookEmail() {
// 省略
}
解答・解説
function sendOutlookEmail() {
var accessToken = getAccessToken(); // アクセストークンを取得する関数
var email = {
"message": {
"subject": "自動送信メール",
"body": {
"contentType": "Text",
"content": "これはGASから送信したテストメールです。"
},
"toRecipients": [
{
"emailAddress": {
"address": "recipient1@example.com"
}
},
{
"emailAddress": {
"address": "recipient2@example.com"
}
}
]
}
};
var options = {
"method": "post",
"contentType": "application/json",
"headers": {
"Authorization": "Bearer " + accessToken
},
"payload": JSON.stringify(email)
};
UrlFetchApp.fetch("https://graph.microsoft.com/v1.0/me/sendMail", options);
}
この解答では、toRecipients 配列内に複数のemailAddressオブジェクトを追加することで、複数の宛先に送信できるようにしている。