Microsoft Graph SDK を使用してメールを送信する PowerShell スクリプトを実装します。
目次
事前準備
1.Azure AD アプリケーションの登録
- Azure ポータル にアクセスし、アプリケーションを登録します。
- API パーミッションで
Mail.Send
パーミッションを付与し、管理者の同意を得ます。 - クライアントIDとクライアントシークレットを取得します。
2.Microsoft Graph SDK のインストール
Install-Module Microsoft.Graph -Scope CurrentUser
スクリプト
以下のスクリプトは、Microsoft Graph SDK を使用してメールを送信する例です。
# 必要なモジュールをインポート
Import-Module Microsoft.Graph
# Azure AD アプリケーションのクレデンシャルを設定
$tenantId = "your-tenant-id"
$clientId = "your-client-id"
$clientSecret = "your-client-secret"
# トークン取得のための認証
$tokenResponse = Invoke-RestMethod -Method Post -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -ContentType "application/x-www-form-urlencoded" -Body @{
client_id = $clientId
scope = "https://graph.microsoft.com/.default"
client_secret = $clientSecret
grant_type = "client_credentials"
}
$accessToken = $tokenResponse.access_token
# トークンを設定
Select-MgProfile -Name "v1.0"
Connect-MgGraph -AccessToken $accessToken
# メールの送信
$recipientEmail = "recipient@example.com"
$senderEmail = "sender@example.com" # 送信者のメールアドレス
$subject = "Test Email"
$bodyContent = "This is a test email sent using Microsoft Graph API."
# メールメッセージの構築
$message = @{
message = @{
subject = $subject
body = @{
contentType = "Text"
content = $bodyContent
}
toRecipients = @(
@{
emailAddress = @{
address = $recipientEmail
}
}
)
}
}
# メールの送信
Send-MgUserMail -UserId $senderEmail -BodyParameter $message -SaveToSentItems
スクリプト説明
1.認証情報の設定
$tenantId
,$clientId
,$clientSecret
に自分の Azure AD アプリケーションの情報を設定します。
2.アクセストークンの取得
Invoke-RestMethod
を使って Azure AD からアクセストークンを取得します。
3.Microsoft Graph に接続
Connect-MgGraph
コマンドレットを使用して、取得したアクセストークンを使って Microsoft Graph に接続します。
4.メールメッセージの構築
- メールの受信者、送信者、件名、本文を設定します。
5.メールの送信
Send-MgUserMail
コマンドレットを使用して、Microsoft Graph API 経由でメールを送信します。
コメント