PowerShell 用のマイクロソフト グラフ SDK を使用して Alternate からオンラインで電子メールを送信する

PowerShell 用のマイクロソフト グラフ SDK を使用して Alternate からオンラインで電子メールを送信する [ad_1]

グラフの探索 PowerShell SDK

最近、PowerShell で Microsoft グラフを使用して、Microsoft 365 内の一般的な管理タスクを自動化する方法を模索してきました。PowerShell でグラフ API の使用を検討する最近の要因の中には、次のものがあります。

私は使用しました パワーシェル用のマイクロソフトグラフSDK 最初の問題を解決し、ネイティブ Graph API が 2 番目の問題を呼び出します。この記事では、次の代替手段について説明します。 メールメッセージの送信 を使用してコマンドレットを使用して、 新しいMgUserメッセージ そして 送信 – MgUser メッセージ 新しい従業員にウェルカム メッセージを作成して送信するための、SDK からのコマンドレット。

ウェルカムメール

組織は、オンボーディング プロセスの一環として、新しい従業員にウェルカム メールを送信します。電子メールには通常、組織で働くことや、カフェテリアを見つける方法など、新入社員が知っておくべきことに関する役立つヒントが含まれています。この処理を自動化するために、スクリプトは次の処理を実行します。

  • Exchange Online に接続して、過去 7 日間に追加された従業員のメールボックスを検索します。
  • Microsoft グラフに接続して、電子メールを作成して送信します。グラフへのすべての接続と同様に、データにアクセスするためのアクセス許可が必要です。この場合、我々は必要です 送信 そして メール.読み取り書き込み 権限。スクリプトは対話式に実行されるため、スクリプトは サービス プリンシパルのアクセス許可クリープに注意する グラフに接続するために使用されます。
  • 見つかったセット内の各メールボックスに対して、 新しいMgUserメッセージ コマンドレットを使用して、サインインしているユーザーのメールボックスに HTML メッセージを作成します。
  • を使用してメッセージを送信します。 送信 – MgUser メッセージ コマンドレット。

スクリプトは基本的なものです(以下のことができます。 GitHub からダウンロードする)が、校長を証明するのに十分である。添付ファイル (新しい従業員ガイドなど) を追加するか、受信者のセットを変更することで、添付ファイルを装飾できます。私たちは後でそれらのポイントに到達します。

接続するコード

グラフに接続するコードは簡単です。

コネクト・Mgグラフ コマンドレットは、テナント識別子を使用してテナントに接続し (テナントに適切な値を使用していることを確認してください)、必要な 2 つのアクセス許可を要求します。Graph SDK で使用されるサービス プリンシパルがこれらのアクセス許可に対する同意をまだ保持していない場合、Graph は同意を求めます。他のコマンドは、ログインコンテキストと組織名の詳細を取得します。

ターゲット メールボックスの検索

ターゲット メールボックスを検索するコードは、過去 7 日間に作成されたメールボックスを検索します。繰り返しますが、それは非常に簡単です:

メッセージの作成と送信

一連のターゲット メールボックスを見つけた後、各メールボックスをループしてカスタマイズされた HTML メッセージを作成し (図 1)、次の手順で必要なメッセージ プロパティのセットを設定します。 送信 – MgUser メッセージ 新しいメッセージを受信者に送信するコマンドレット。

PowerShell 用のマイクロソフト グラフ SDK を使用して Exchange からオンラインで電子メールを送信する
図 1: 新しい従業員のカスタマイズされた HTML メッセージ

他の多くの PowerShell コマンドレット、特に Exchange Online のコマンドレットとは異なり、グラフ API と対話するときは、API が必要とする入力形式を使用するように細心の注意を払う必要があります。たとえば、ターゲット メールボックスのプライマリ SMTP アドレスを取得し、その文字列を使用して受信者をメッセージに追加することが可能であるとします。不幸なことに、それはそうではなく、Graphが幸せになる前に、正しい形式の要素を持つ配列を構築する必要があります。

受信者の処理

上記のコードは、1 つの TO: 受信者を追加する手順を示しています。他の受信者を追加する場合は、同じ種類の入力配列を作成します。たとえば、メッセージに BCC 受信者のカップルを追加するとします。配列で受信者を宣言します (または PowerShell を使用してソースから取得します)。

次に、入力配列を作成します。

配列は次のようになります。

配列の値は次の方法で確認できます。

SDK開発者は、より簡単に私たちに好意を与えることができますメッセージに受信者を追加します。メッセージ構造が入れ子になった値を要求する理由には論理があると確信していますが、SDK を使用するようにコードを更新するように人々を説得することは容易ではありません。

添付ファイルの追加

メッセージに添付ファイルを追加することは、SDK 開発者が PowerShell 開発者に対して複雑さを隠すもう 1 つの場所です。現時点では、添付ファイルを追加するには、Base64 エンコードバージョンのファイルを作成し、入力配列に含める必要があります。例えば:

今構築した入力配列は次のようになります。

添付ファイルをメッセージに含めるには、配列を 添付 ファイル パラメータ 新しいMgUserメッセージ.添付ファイルは、期待どおりに表示されます (図 2)。

PowerShell 用のマイクロソフト グラフ SDK を使用して Exchange からオンラインで電子メールを送信する
図 2: メッセージへの添付ファイルの追加

良い機能性;簡単になる可能性があります。

再選を嘆願し、時には政治家は、彼らが多くのことをしたが、まだやるべきことがたくさんあると主張する。PowerShell 用のマイクロソフト グラフ SDK を使用して、Exchange オンラインを介してメッセージを作成して送信するのと同じ感覚を得ています。利用可能な機能はたくさんありますが、特に、アニメーション化されていない機能にアクセスするのは難しいです。 メールメッセージの送信 コマンドレット。良いドキュメントの欠如は、さらなる障壁です。

現在、PowerShell 用のマイクロソフト グラフ SDK は、基になるグラフ API の動作を模倣しています。開発の初期段階を考えると、それは適切で必要です。しかし、SDK を受け入れ、使用するように人々を説得するには、開発者は、SDK コマンドレットを使用して、管理者が Graph の機能にアクセスする方が簡単にする必要があると思います。



[ad_2]

未分類

Posted by admin