> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/ja/dev-reference/report-functions/send-rjrbreportemail.md).

# Send-RjRbReportEmail

## 概要

`Send-RjRbReportEmail` は、RealmJoin レポート用 runbook からレポートメールを配信するための標準ヘルパーです。Markdown コンテンツを受け取り、RealmJoin ブランドのレスポンシブ HTML メールに変換し、任意のファイルとインラインのブランド画像（ヘッダー/フッター）を添付して、結果を Microsoft Graph の sendMail エンドポイント経由で送信します `sendMail` エンドポイント。

> **このリリースで名前が変更されました。** 関数は `Send-RjReportEmail` から `Send-RjRbReportEmail` に、モジュールの他の部分（`*-RjRb*`）との命名の一貫性を保つために変更されました。旧名 `Send-RjReportEmail` は後方互換のエイリアスとしてエクスポートされるため、既存の runbook は変更なしでそのまま動作し続けます — ただし、新しい runbook では `Send-RjRbReportEmail`.

主な特徴:

* **Markdown 入力、HTML 出力** — runbook はレポート本文を Markdown で作成します。関数はそれを、Outlook Classic、New Outlook、Outlook Web、モバイル クライアント、ダークモード全体で動作するテーマ付き HTML にレンダリングします。
* **受信者ごとに 1 通のメール** — 複数の受信者が指定された場合、関数は 1 通の複数受信者宛てメールではなく、各アドレスに個別のメッセージを送信します。これはプライバシー / BCC デフォルト設計です。
* **インラインのブランド付きヘッダーとフッター** — 同梱の PNG アセットは CID 添付ファイルとして送信され、埋め込み HTML から参照されます。どちらも上書きすることも、完全に抑制することもできます。
* **カスタマイズ可能なテンプレート色** — テンプレートのアクセント色とテキスト色は呼び出しごとに上書きできるため、レポートメールを顧客のコーポレートデザインに合わせられます。
* **組み込みの添付ファイルサイズガード** — 通常のセットがサイズ上限を超えるか送信試行に失敗した場合、自動的に小さい代替添付ファイルセットが送信されます。
* **自動接続** — Graph セッションがアクティブでない場合、関数は透過的に `Connect-RjRbGraph` を呼び出します（または `Connect-MgGraph -Identity` が `-UseNativeGraphRequest` で設定されている場合）。
* **堅牢** — 添付ファイルの読み取り失敗、無効な画像上書き、無効な色、または受信者ごとの sendMail 失敗は報告されますが、 *すべての* 受信者が失敗しない限り、バッチ全体は中断されません。

送信者アドレス、サービスデスク情報などの中央集約メール設定は [Runbook Report Settings](/ja/zi-dong-hua/runbooks/runbook-report-settings.md) に記載されています — このドキュメントでは runbook から関数を呼び出す方法に焦点を当てます。

## 前提条件

### 送信者メールボックス

ライセンス付きの Microsoft 365 メールボックス（通常は `realmjoin-report@contoso.com`のような専用の共有メールボックス）が、 `From` アドレスとして必要です。Automation Account のマネージド ID は、Graph `Mail.Send` アプリケーション権限を介して、そのメールボックスの代理で送信できるよう許可されていなければなりません（ID を 1 つのメールボックスに制限したい場合は、アプリケーション用 RBAC でスコープを設定します）。

### Graph のアクセス許可

| シナリオ                             | 必要なアクセス許可                                  |
| -------------------------------- | ------------------------------------------ |
| 既定（`Invoke-RjRbRestMethodGraph`) | `Mail.Send` ）の送信者メールボックスに対する (Application) |
| 使用時は `-UseNativeGraphRequest`    | 同じです — 呼び出しは引き続き `/users/{id}/sendMail`    |

### モジュール接続

既定では、この関数は `Invoke-RjRbRestMethodGraph` をこのモジュールから使用します。接続がアクティブでない場合は `Connect-RjRbGraph`Connect-RjRbGraph `-UseNativeGraphRequest` -UseNativeGraphRequest `Get-MgContext` を確認し、 `Connect-MgGraph -Identity -NoWelcome` をオンデマンドで呼び出します。

## クイック スタート

最小限の呼び出しに必要なのは、送信者、受信者、件名、Markdown 本文のみです:

```powershell
Send-RjRbReportEmail `
    -EmailFrom "realmjoin-report@contoso.com" `
    -EmailTo   "alice@contoso.com" `
    -Subject   "Weekly Report" `
    -MarkdownContent @"
# 週間レポート

こんにちは、アリスさん、

今週の数値は次のとおりです:

- 新規登録デバイス: **42**
- ライセンス準拠率: **98%**
"@
```

これにより、既定のヘッダーとフッター、ライト/ダーク モード対応、フッターの tenant/version ブロックを備えた、完全にブランド化された RealmJoin メールが生成されます。

## パラメーター

### 必須

| パラメーター            | 型        | 説明                                                                              |
| ----------------- | -------- | ------------------------------------------------------------------------------- |
| `EmailFrom`       | `string` | 送信者メールボックスのユーザー プリンシパル名またはオブジェクト ID。として使用されます `/users/{id}/sendMail`.           |
| `EmailTo`         | `string` | 受信者アドレス。 **単一の文字列** — 複数のアドレスはカンマ区切りの一覧で渡されます。詳細は以下を参照してください。                   |
| `Subject`         | `string` | 件名。HTML の `<title>` 要素にも挿入されます。                                                 |
| `MarkdownContent` | `string` | Markdown 形式のレポート本文。対応する構文については [Markdown Support](#markdown-support) を参照してください。 |

### オプション — コンテンツ

| パラメーター              | 型          | 既定      | 説明                                                                                                      |
| ------------------- | ---------- | ------- | ------------------------------------------------------------------------------------------------------- |
| `添付ファイル`            | `string[]` | `@()`   | 添付するローカル ファイル パス。存在しないファイルはログに記録されてスキップされ、読み取れないファイルは警告を出しますが送信は中断されません。MIME タイプはファイル拡張子から決定されます。       |
| `saveToSentItems`   | `bool`     | `$true` | If `$true` 送信済みメッセージは送信者メールボックスの *Sent Items*に保存されます。 `$false` に設定すると、メールボックスがいっぱいにならないよう大量レポートに適しています。 |
| `TenantDisplayName` | `string`   | —       | コンテンツ領域の末尾に埋め込まれる tenant-info ボックスに表示されます。                                                              |
| `ReportVersion`     | `string`   | —       | tenant-info ボックスに表示されます（セマンティック バージョン文字列、ビルド番号、または runbook 名 + 日付を使用してください）。                            |

### オプション — ブランディング

| パラメーター        | 型        | 既定                          | 説明                                                                                                                                                                             |
| ------------- | -------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `HeaderImage` | `string` | 同梱 `Assets/Header.png`      | 既定のヘッダー画像を上書きする PNG/JPG/GIF のローカル ファイル パス。 **runbook は、URL/blob を事前にローカル ファイルへ解決しておく必要があります** （たとえば `Get-AzStorageBlobContent`を介して）。存在しない/読み取れない上書きは同梱の既定値にフォールバックし、警告が出力されます。 |
| `FooterImage` | `string` | 同梱 `Assets/Footer.png`      | と同じ扱いです。 `HeaderImage`フッターはクリック可能な 1 つの画像としてレンダリングされます — ブランディング テキスト、ロゴ、URL はすべて PNG に埋め込んでおく必要があります。                                                                         |
| `FooterLink`  | `string` | `https://www.realmjoin.com` | URL は `href` および `title` としてフッター画像を囲むアンカーに使用されます。                                                                                                                              |
| `NoHeader`    | `スイッチ`   | オフ                          | ヘッダー画像を完全に抑制します。If combined with `HeaderImage`、警告が出力され、上書きは無視されます。                                                                                                             |
| `NoFooter`    | `スイッチ`   | オフ                          | フッター画像とそのリンクを完全に抑制します。If combined with `FooterImage` またはカスタム `FooterLink`、警告が出力され、それらの値は無視されます。                                                                                |
| `AccentColor` | `string` | `#f8842c`                   | *0.8.9 で新規追加。* テーブルのヘッダー行、アクション ボタン、情報ボックスのアクセント枠に使用する 6 桁の 16 進カラーです。空または不正な値では警告が出力され、既定値にフォールバックします。                                                                        |
| `TextColor`   | `string` | `#011e33`                   | *0.8.9 で新規追加。* 本文テキスト、見出し、リスト項目、コードに使用する 6 桁の 16 進カラーです。フォールバック動作は `AccentColor`.                                                                                              |

**推奨画像サイズ:** 750 × 200 px の PNG です。これはメール コンテナーの幅と同梱の既定値に一致します。アスペクト比が大きく異なると、狭い表示領域では歪んで見える場合があります。各画像は 3 MB を十分下回るようにしてください — Graph は要求全体を 4 MB で上限設定しており、どちらかの画像が 3 MB を超えると警告が出力されます。 `sendMail` 要求全体を 4 MB で上限設定しており、どちらかの画像が 3 MB を超えると警告が出力されます。

**色:** なしで `AccentColor`/`TextColor` 生成される HTML は、以前のモジュール バージョンとバイト単位で完全に同一です。既定値は RealmJoin のオレンジとネイビーです。状態色（緑/赤/アンバー）とニュートラルなグレーは、意味を持つため意図的にパラメーター化されていません。カスタム色はライト モードとダーク モードの両方で確認してください。コンテンツ カードはダーク モードでも白のままなので、非常に明るいテキスト色だと読めなくなります。

### オプション — 添付ファイルサイズガード

*0.8.9 で新規追加。* Graph は `sendMail` 要求全体を拒否します。メッセージが約 4 MB を超えると拒否されます。レポートを失敗させる代わりに、関数はより小さい添付ファイルセットにフォールバックできます。このロジックは以前はインライン runbook ヘルパー `Send-RjRbGuardedReportEmail` として重複実装されていましたが、現在は関数自体の一部になっています。

| パラメーター                    | 型          | 既定                   | 説明                                                                                                                                             |
| ------------------------- | ---------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `FallbackAttachments`     | `string[]` | —                    | 通常のセットが `MaxAttachmentBytes`を超える場合、または通常セットでの送信がすべての受信者で失敗した場合に使用される、小さい添付ファイル セットです。このパラメーターがない場合、フォールバックはなく、送信失敗はただちに例外になります。                |
| `FallbackMarkdownContent` | `string`   | の値 `MarkdownContent` | フォールバック セットが送信されるときに使用する本文。どのファイルが除外されたか、またそれらを入手する方法を説明するために使ってください。                                                                          |
| `MaxAttachmentBytes`      | `long`     | `2.5MB`              | 通常の添付ファイル セットの未加工サイズ上限です。base64 エンコード（+33 %）、HTML 本文、インラインのブランド画像を加えた後でも、約 4 MB の Graph 制限を安全に下回ります。 `FallbackAttachments` が指定されている場合のみ評価されます。 |

ガードは 2 段階で実行されます:

1. **送信前** — 通常のセットが上限を超えている場合、代替セットが直接送信され、メッセージには両方のサイズが表示されます。
2. **送信失敗後** — 通常のセットでの送信が *すべての* 受信者で失敗した場合、関数が例外を投げる前に、代替セットで 1 回再試行されます。

### オプション — トランスポート

| パラメーター                  | 型      | 既定 | 説明                                                                                                                                                                                                  |
| ----------------------- | ------ | -- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `UseNativeGraphRequest` | `スイッチ` | オフ | を介して送信します `Invoke-MgGraphRequest` （必要 `Microsoft.Graph` モジュールと `Connect-MgGraph` セッションが必要）を使用し、 `Invoke-RjRbRestMethodGraph`の代わりに使います。runbook が RealmJoin ラッパーではなくネイティブ SDK を中心に構築されている場合に使用してください。 |

## 使用例

### 複数の受信者

`EmailTo` 1 つ以上のカンマ区切りアドレスを含む単一の文字列を受け取ります。各アドレスはトリミングされ、空の項目は削除され、 **受信者ごとに 1 通の個別メールが送信されます** — 受信者同士は互いを見ません。

```powershell
Send-RjRbReportEmail `
    -EmailFrom "realmjoin-report@contoso.com" `
    -EmailTo   "alice@contoso.com, bob@contoso.com, team-lead@contoso.com" `
    -Subject   "Monthly Inventory" `
    -MarkdownContent $reportMd
```

### 添付ファイルと tenant メタデータ付き

```powershell
$csvPath = Join-Path $env:TEMP 'devices.csv'
$exportData | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8

Send-RjRbReportEmail `
    -EmailFrom         "realmjoin-report@contoso.com" `
    -EmailTo           "it-reports@contoso.com" `
    -Subject           "デバイス在庫 — $(Get-Date -Format 'yyyy-MM-dd')" `
    -MarkdownContent   $reportMd `
    -Attachments       @($csvPath, "$env:TEMP\\summary.xlsx") `
    -TenantDisplayName "Contoso Ltd" `
    -ReportVersion     "DeviceInventory v1.4.2"
```

添付されたファイルは、メッセージに実際の添付ファイルとして追加されることに加え、メール本文下部の「添付ファイル」ボックスにも一覧表示されます。

### カスタムのヘッダー/フッター ブランディング

最初にアセットをローカル パスにダウンロードし、その結果のパスを渡すことで、独自のブランディングを適用できます。関数自体は URL を取得しません。

```powershell
# Azure Blob Storage から runbook の一時フォルダーにブランディング アセットを解決する
$headerPath = Join-Path $env:TEMP 'contoso-header.png'
$footerPath = Join-Path $env:TEMP 'contoso-footer.png'

Get-AzStorageBlobContent -Container 'branding' -Blob 'header.png' -Destination $headerPath -Force | Out-Null
Get-AzStorageBlobContent -Container 'branding' -Blob 'footer.png' -Destination $footerPath -Force | Out-Null

Send-RjRbReportEmail `
    -EmailFrom        "realmjoin-report@contoso.com" `
    -EmailTo          "alice@contoso.com" `
    -Subject          "ブランド付きレポート" `
    -MarkdownContent  $reportMd `
    -HeaderImage      $headerPath `
    -FooterImage      $footerPath `
    -FooterLink       "https://intranet.contoso.com/it-reports"
```

If `$headerPath` が存在しないか読み取れない場合でも、呼び出しは成功します — 同梱の RealmJoin 既定値が使用され、警告がログに記録されます。

### カスタムのテンプレート色

メールを顧客のコーポレートデザインに合わせます。両方のパラメーターは独立しており、アクセント色だけを上書きすると既定のテキスト色は保持されます:

```powershell
Send-RjRbReportEmail `
    -EmailFrom       "realmjoin-report@contoso.com" `
    -EmailTo         "alice@contoso.com" `
    -Subject         "ブランド付きレポート" `
    -MarkdownContent $reportMd `
    -AccentColor     "#0052cc" `
    -TextColor       "#1a1a2e"
```

無効な値（たとえば `blue` または `#05c`）でも送信は失敗しません。パラメーター名を示す警告が出され、既定色が使用されます。

### 代替添付ファイルセットを伴う大規模レポート

CSV と Excel ワークブックを生成しますが、2 つの合計がサイズ上限を超える場合はワークブックのみへフォールバックします:

```powershell
$sizeHint = "CSV エクスポートは、添付ファイルがメールのサイズ制限を超えたため省略されました。Excel ワークブックには完全なデータが含まれています。"

Send-RjRbReportEmail `
    -EmailFrom                "realmjoin-report@contoso.com" `
    -EmailTo                  "it-reports@contoso.com" `
    -Subject                  "デバイス在庫" `
    -MarkdownContent          $reportMd `
    -Attachments              @($csvPath, $xlsxPath) `
    -FallbackAttachments      @($xlsxPath) `
    -FallbackMarkdownContent  ($reportMd + "`n`n> **注:** $sizeHint")
```

インライン ヘルパーから移行する runbook `Send-RjRbGuardedReportEmail` はその関数を削除し、呼び出しを `Send-RjRbReportEmail` に変更できます — パラメーター名（`添付ファイル`, `FallbackAttachments`, `FallbackMarkdownContent`, `MaxAttachmentBytes`）は変更されていません。

### プレーン コンテンツ（ヘッダー/フッターなし）

マーケティング メールのように見せたくないアラート形式の通知用:

```powershell
Send-RjRbReportEmail `
    -EmailFrom       "realmjoin-report@contoso.com" `
    -EmailTo         "oncall@contoso.com" `
    -Subject         "[ALERT] ライセンスしきい値を超過しました" `
    -MarkdownContent "## ライセンスしきい値を超過しました`n`n詳細はダッシュボードを参照してください。" `
    -NoHeader `
    -NoFooter
```

### ネイティブ Microsoft.Graph SDK の使用

runbook がすでに `Connect-MgGraph` （マネージド ID）を介して認証されており、RealmJoin ラッパーを混在させたくない場合:

```powershell
Connect-MgGraph -Identity -NoWelcome

Send-RjRbReportEmail `
    -EmailFrom             "realmjoin-report@contoso.com" `
    -EmailTo               "alice@contoso.com" `
    -Subject               "ネイティブ Graph 送信" `
    -MarkdownContent       $reportMd `
    -UseNativeGraphRequest
```

### ファイルからレポート本文を読み込む

より大きいレポートでは、Markdown を `.md` ファイルに生成してから読み込みます:

```powershell
$reportMd = Get-Content -Path .\\generated-report.md -Raw

Send-RjRbReportEmail `
    -EmailFrom       "realmjoin-report@contoso.com" `
    -EmailTo         "alice@contoso.com" `
    -Subject         "Weekly Report" `
    -MarkdownContent $reportMd
```

### アクション ボタン（CTA）

Markdown リンクに `{button}` を追加することで、1 つ以上のブランド付きボタンをレンダリングします。同じ行に配置されたボタンは 1 行にまとめられます:

```powershell
$reportMd = @"
# アクセス要求

新しいデバイスのアクセス要求が判断待ちです。

[承認](https://portal.contoso.com/approve/123){button} [拒否](https://portal.contoso.com/reject/123){button}
"@

Send-RjRbReportEmail `
    -EmailFrom       "realmjoin-report@contoso.com" `
    -EmailTo         "approver@contoso.com" `
    -Subject         "対応が必要: デバイスアクセス要求" `
    -MarkdownContent $reportMd
```

各ボタンは CTA としてスタイル設定された通常のハイパーリンクです — すべてのクライアントで安全で、モダン クライアントでは角丸、Outlook Classic では四角になります。

## Markdown Support

この関数には、軽量の Markdown → HTML 変換器が組み込まれています。 **外部の Markdown モジュールは不要です。** 対応構文:

| Markdown                                      | 注記                                                                                                                                                                                            |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `# … ######` 見出し                              | 6 段階すべて。 `#` の後のスペースは任意です。 `h1` には下線が付きます。間隔は Outlook 向けに調整されています。                                                                                                                            |
| `**太字**`, `*斜体*`, `~~取り消し線~~`                 | インラインのみ（複数行にまたがってはいけません）。                                                                                                                                                                     |
| `` `inline code` ``                           | としてレンダリングされます `<code>` 薄いグレーの背景で。                                                                                                                                                             |
| lang ... のフェンス付きコードブロック                       | 言語タグは次のように保持されます: `class="language-…"`。また、形式の崩れた単一バッククォートのフェンスも許容します。                                                                                                                         |
| `[text](url)` リンク                             | 次を使って新しいタブで開く `noopener noreferrer`.                                                                                                                                                          |
| `[label](url){button}` リンクボタン                 | 通常のリンクの代わりに、ブランド付きのオレンジ色のCTAボタンとしてレンダリングされます。複数の `{button}` リンクが **同じ行の** 1行内で横並びにレンダリングされ、幅は均等に分割されます。角丸は現代的なクライアント（New Outlook、OWA、モバイル）で表示されます。Outlook Classic（Word エンジン）は角が四角くレンダリングされます。 |
| `![alt](url)` 画像                              | 次のように挿入されます `<img>` （インライン添付の魔法はありません — URL はメールクライアントから到達可能である必要があります）。                                                                                                                      |
| `- 項目` / `1. 項目` リスト                          | ネストされたリストは、レベルごとに 2 スペースのインデントでサポートされます。順序付きと順序なしを混在させると、前のリストが閉じます。                                                                                                                          |
| 複数行のリスト項目                                     | の直下にあるインデントされた空でない行は `<li>` 同じ項目に折りたたまれ、 `<br>` でソフトブレークになります — 各項目を1行に収める必要はありません。                                                                                                           |
| `- [ ]` / `- [x]` タスクリスト                      | としてレンダリングされます `☐` / `☑` Unicodeグリフ（チェック済みのときは緑）。 `<input type="checkbox">` は、Outlook Classic がフォームコントロールを削除するため、意図的に避けています。大文字の `[X]` もチェック済みとして扱われます。                                        |
| `> 引用ブロック`                                    | 色付きの左罫線と陰影のある背景でレンダリングされます。                                                                                                                                                                   |
| `> [!NOTE\|TIP\|IMPORTANT\|WARNING\|CAUTION]` | GitHub 風の注意書きです。blockquote の1行目がマーカー（単独）で、残りの `>`で始まる行が本文です。各種類ごとに専用のアクセントカラー、グリフ、タイトルバーが付きます。                                                                                                |
| `---`, `***`, `___`                           | 水平線。                                                                                                                                                                                          |
| `\|col\|col\|` テーブル                           | 標準的なパイプ表で、 `:---`, `:---:`, `---:` 配置指定子を使用します。ヘッダー行と区切り行が必須です。                                                                                                                               |
| `\\` エスケープ                                    | `\*`, `\|` などは尊重されるため、リテラルな Markdown 文字を出力できます。                                                                                                                                               |

未対応の項目には脚注、定義リスト、HTML のパススルーが含まれます — Markdown は上の表に収めてください。

## 動作とエラー処理

### 受信者の解析

`EmailTo` はカンマで分割され、各項目はトリムされ、空項目は除外されます。結果のリストが空の場合、関数は次をスローします `EmailTo パラメーターに有効なメール受信者が見つかりませんでした。` Graph 呼び出しを行う前に。

### 受信者ごとの失敗

各受信者は個別に送信されます。関数は成功と失敗を追跡します:

* If **少なくとも1件の** 送信が成功し、他が失敗した場合、失敗したアドレスの一覧を含む警告が出力され、関数は正常に戻ります。
* If **すべての** すべての送信が失敗した場合、関数は次をスローします `すべての受信者へのメール送信に失敗しました: …` そのため、runbook は明示的に失敗します。

### 添付ファイルの失敗

* 見つからないファイル（パスが存在しない） — 詳細にログ出力され、静かにスキップされます。
* 存在するが読み取れないファイル（ロック中、権限拒否） — 警告を出してスキップし、呼び出しの残りは続行されます。
* メール下部の「Attached Files」ボックスには、正常に読み取れた添付ファイルのみが一覧表示されます。

### 画像の上書き失敗

両方 `HeaderImage` および `FooterImage` いずれかのエラー（ファイルの欠落、IO エラー、または有効な画像でないファイル）が発生すると、同梱の既定値にフォールバックします。警告で失敗内容と、どの既定値が使われたかを示します。

0.8.9 以降、画像形式は **ファイルシグネチャ** （マジックバイト）に基づいて決定され、拡張子ではありません。 `.png` しかし実際には HTML のエラーページを含んでいるファイル — ダウンロードが静かにエラードキュメントを返すとよくある結果 — は、壊れたインライン添付を生成する代わりに警告付きで拒否されるようになりました。逆に、誤解を招く拡張子で保存された有効な PNG は受け入れられ、正しく型判定されます。

### 無効な色

`AccentColor` および `TextColor` は次に対して検証されます `^#[0-9A-Fa-f]{6}$`。一致しない値は、パラメーター名を示す警告を出し、送信は既定の色で続行されます。色が原因でレポートが失敗することはありません。

### 総サイズ上限

Graph は `sendMail` リクエスト全体を約4 MB（HTML 本文 + すべての添付、Base64 エンコード済み）に制限します。どちらかのブランド画像が 3 MB を超えると、関数は警告を出します。

指定されると、 `FallbackAttachments` 上のパラメーター節で説明した添付サイズガードが大きすぎるペイロードを自動的に処理します。フォールバック セットがない場合、サイズ超過の要求は Graph 呼び出しで失敗します。次を検討してください:

* 次のようなものを `FallbackAttachments` セット（たとえば、元の CSV ファイルを含まない Excel ブック）。
* その代わりに、大きなデータを Storage Account チャネルにアップロードする — 参照: [Runbook Report Settings](/ja/zi-dong-hua/runbooks/runbook-report-settings.md#storage-account-delivery).
* 埋め込むのではなく、外部ホストの添付ファイルへリンクする。
* 表形式データを圧縮する（`Compress-Archive`）を添付前に。

## Runbook Report Settings との統合

レポート用 runbook は送信者アドレスやブランドをハードコードしません。RealmJoin ポータルが中央のカスタマイズ JSON から事前入力する隠しパラメーターを宣言します。利用可能な設定は次に文書化されています: [Runbook Report Settings](/ja/zi-dong-hua/runbooks/runbook-report-settings.md).

バインドは runbook の `param()` ブロック内で次を通じて行われます: `Use-RJInterface -Type Setting`で、パラメーターは次のようにマークされます: `"Hide": true` の `.INPUTS RunbookCustomization` ブロックにあるため、ポータルフォームを煩雑にしません:

```powershell
param(
    [ValidateScript( { Use-RJInterface -Type Setting -Attribute "RJReport.EmailSender" -Value $_ } )]
    [string]$EmailFrom,

    [ValidateScript( { Use-RJInterface -Type Setting -Attribute "RJReport.Branding.HeaderImageUrl" -Value $_ } )]
    [string]$BrandingHeaderImageUrl,

    [ValidateScript( { Use-RJInterface -Type Setting -Attribute "RJReport.Branding.FooterImageUrl" -Value $_ } )]
    [string]$BrandingFooterImageUrl,

    [ValidateScript( { Use-RJInterface -Type Setting -Attribute "RJReport.Branding.FooterLink" -Value $_ } )]
    [string]$BrandingFooterLink,

    [ValidateScript( { Use-RJInterface -Type Setting -Attribute "RJReport.Branding.AccentColor" -Value $_ } )]
    [string]$BrandingAccentColor,

    [ValidateScript( { Use-RJInterface -Type Setting -Attribute "RJReport.Branding.TextColor" -Value $_ } )]
    [string]$BrandingTextColor
)

if (-not $EmailFrom) {
    throw "EmailSender が構成されていません。セットアップ手順は https://docs.realmjoin.com/automation/runbooks/runbook-report-settings を参照してください。"
}

# ブランド画像を各実行ごとに1回ダウンロードして検証する。成功したキーのみを返します
# そのため、未設定の設定は既定値にフォールスルーします。
$brandingMailParams = Get-RjRbBrandingMailParams `
    -HeaderImageUrl $BrandingHeaderImageUrl `
    -FooterImageUrl $BrandingFooterImageUrl `
    -FooterLink     $BrandingFooterLink `
    -AccentColor    $BrandingAccentColor `
    -TextColor      $BrandingTextColor

Send-RjRbReportEmail `
    -EmailFrom         $EmailFrom `
    -EmailTo           $RecipientParameter `
    -Subject           $Subject `
    -MarkdownContent   $reportMd `
    -TenantDisplayName $TenantDisplayName `
    -ReportVersion     "MyReport v1.0" `
    @brandingMailParams
```

参照 [Get-RjRbBrandingMailParams](/ja/dev-reference/report-functions/get-rjrbbrandingmailparams.md) ダウンロード、検証、クリーンアップのルールについて。

## 出力

成功時、関数は何も返しません。進行状況はすべて次を通じて書き込まれます: `Write-RjRbLog -Verbose` （runbook が次を付けて実行されたときに表示されます: `-Verbose` または `$VerbosePreference = 'Continue'`）。警告は次を介して強制されます: `$WarningPreference = 'Continue'` 呼び出し側の上書きに関係なく、そのため Azure Automation のジョブ ストリームに確実に表示されます。

## 関連するエクスポート済みヘルパー

の基盤となる要素は `Send-RjRbReportEmail` 現在はモジュールからもエクスポートされているため、runbook は送信せずに HTML を組み立てたりプレビューしたりできます:

| 関数                                                                                               | 用途                                                                                                                                           |
| ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| [`Get-RjRbBrandingMailParams`](/ja/dev-reference/report-functions/get-rjrbbrandingmailparams.md) | 次を `RJReport.Branding.*` テナント設定を、そのまま展開できるパラメーターに変換します。画像をダウンロードして検証し、色とフッターリンクをそのまま渡します。                                                    |
| `ConvertFrom-RjRbMarkdownToHtml`                                                                 | 単体の Markdown → HTML 変換器（内部で使われている同じ軽量エンジンで、 `{button}` 構文も含みます）。次を受け付けます: `-AccentColor`/`-TextColor`.                                       |
| `Get-RjRbReportEmailBody`                                                                        | HTML または Markdown から、完全なブランド付き HTML 本文（ヘッダー/フッター、テナント情報ボックス、添付一覧）を組み立てます — 送信前にメールをレンダリングして確認するのに便利です。次を受け付けます: `-AccentColor`/`-TextColor`. |
| `Resolve-RjRbImageSource`                                                                        | ヘッダー/フッター画像のパスを、そのインライン CID ソースに解決します。ファイルシグネチャで検証し、PNG、JPEG、GIF 以外であれば例外をスローします。                                                            |

を除き、 `Get-RjRbBrandingMailParams`これらは主に高度な用途/テスト用途向けです。通常の方法は次を直接呼び出すことです: `Send-RjRbReportEmail` 直接。

## 関連項目

* [Get-RjRbBrandingMailParams](/ja/dev-reference/report-functions/get-rjrbbrandingmailparams.md) — runbook 内でテナントのブランド設定を解決します。
* [Runbook Report Settings](/ja/zi-dong-hua/runbooks/runbook-report-settings.md) — 送信者メールボックス、サービスデスク情報、ブランド設定、Storage Account 配信チャネルの中央構成。
* Microsoft Graph: [メールを送信](https://learn.microsoft.com/en-us/graph/api/user-sendmail) — 基盤となる API。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/ja/dev-reference/report-functions/send-rjrbreportemail.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
