# 画面設計書 31-テキストメールフッター

## 概要

本ドキュメントは、Laravelフレームワークのテキストメールにおけるフッター部品（footer.blade.php）の画面設計書である。プレーンテキスト形式メールのフッター部分を出力するコンポーネントテンプレートについて記述する。

### 本画面の処理概要

テキストメールフッター部品は、プレーンテキスト形式のメールにおけるフッターコンテンツを出力するためのBladeコンポーネントである。

**業務上の目的・背景**：HTMLメールをサポートしないメールクライアントや、ユーザーの設定でテキスト形式を選択している場合に、メールの末尾に著作権情報や連絡先情報などのフッターコンテンツを表示するために必要な部品である。HTMLメールと対になるテキスト版を提供することで、アクセシビリティとメール到達率を向上させる。

**画面へのアクセス方法**：この部品は直接アクセスされるものではなく、テキストメールメッセージ（message.blade.php）から`<x-mail::footer>`コンポーネントとして呼び出される。Markdownクラスの`renderText()`メソッドがテキスト用コンポーネントパスを参照してレンダリングする。

**主要な操作・処理内容**：
1. `$slot`変数に渡されたフッターコンテンツをそのまま出力
2. HTMLタグは含まれない純粋なテキスト出力として処理
3. 通常、著作権表示や連絡先情報を含む

**画面遷移**：本部品は画面遷移の概念を持たない。テキストメールレイアウト（layout.blade.php）のfooterスロットに配置され、メッセージテンプレート（message.blade.php）から利用される。

**権限による表示制御**：特になし。メール送信時に全ての受信者に対して同一のフッターが表示される。

## 関連機能

| 機能No | 機能名 | 関連種別 | 関連する操作・処理 |
|--------|--------|----------|------------------|
| 28 | メール管理 | 主機能 | テキストメールフッター部品の表示 |

## 画面種別

部品（テキストメールコンポーネント）

## URL/ルーティング

N/A（メールテンプレート部品のため、URLルーティングは存在しない）

## 入出力項目

| 項目名 | 種別 | データ型 | 必須 | 説明 |
|--------|------|----------|------|------|
| $slot | 入力 | string | Yes | フッターに表示するテキストコンテンツ |

## 表示項目

| 項目名 | 説明 | 表示形式 |
|--------|------|----------|
| フッターテキスト | フッター領域に表示するテキスト | プレーンテキスト |

## イベント仕様

### 1-レンダリング処理

Bladeコンポーネントとしてレンダリングされる際、`$slot`変数の内容がそのままテキスト出力される。特別なイベントハンドラやユーザー操作は存在しない。

## データベース更新仕様

### 操作別データベース影響一覧

| 操作（イベント） | 対象テーブル | 操作種別 | 概要 |
|----------------|-------------|---------|------|
| N/A | - | - | データベース操作なし |

## メッセージ仕様

本部品はメッセージを出力しない。フッターコンテンツとして著作権情報や連絡先を表示する用途で使用される。

## 例外処理

| 例外 | 条件 | 対応 |
|------|------|------|
| テンプレート未発見 | 部品ファイルが存在しない場合 | Bladeエンジンが例外をスロー |

## 備考

- HTML版のメールフッター（html/footer.blade.php）とは異なり、スタイリングやHTMLタグは一切含まれない
- プレーンテキストとしてシンプルに`$slot`の内容を出力するのみ
- 通常、message.blade.phpテンプレートから`<x-mail::footer>`として呼び出され、著作権表示などを出力する

---

## コードリーディングガイド

本画面を理解するために参照すべきファイルと、推奨する読み解き順序を以下に示す。

### 推奨読解順序

#### Step 1: データ構造を理解する

テキストメールで使用されるスロット変数とその流れを理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 1-1 | footer.blade.php | `src/Illuminate/Mail/resources/views/text/footer.blade.php` | `$slot`変数がそのまま出力される単純な構造 |

**読解のコツ**: Bladeコンポーネントの`$slot`は、コンポーネントタグで囲まれた内容が自動的に渡される特殊変数である。

#### Step 2: エントリーポイントを理解する

メールレンダリングの起点となるクラスを特定する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 2-1 | Markdown.php | `src/Illuminate/Mail/Markdown.php` | `renderText()`メソッド（122-133行目）がテキストメールのレンダリング起点 |

**主要処理フロー**:
1. **122行目**: `renderText()`メソッドが呼び出される
2. **124行目**: ビューファインダーのキャッシュをフラッシュ
3. **126-128行目**: テキスト用コンポーネントパスに名前空間を置き換えてビューをレンダリング
4. **130-132行目**: HTMLエンティティをデコードし、連続改行を正規化

#### Step 3: レイアウト構造を理解する

テキストメールの全体構造とフッターの位置づけを理解する。

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 3-1 | layout.blade.php | `src/Illuminate/Mail/resources/views/text/layout.blade.php` | フッタースロットの配置位置（9行目） |
| 3-2 | message.blade.php | `src/Illuminate/Mail/resources/views/text/message.blade.php` | フッターコンポーネントの呼び出し方法（22-26行目） |

**主要処理フロー**:
- **layout.blade.php 9行目**: `{!! strip_tags($footer ?? '') !!}`でフッタースロットを出力
- **message.blade.php 22-26行目**: `<x-slot:footer>`内で`<x-mail::footer>`を呼び出し、著作権情報を渡す

### プログラム呼び出し階層図

```
Markdown::renderText()
    │
    ├─ ViewFactory::replaceNamespace('mail', textComponentPaths())
    │
    └─ View::make('mail::message')
           │
           └─ message.blade.php
                  │
                  ├─ <x-mail::layout>
                  │      │
                  │      └─ layout.blade.php
                  │             │
                  │             └─ $footer スロット出力
                  │
                  └─ <x-mail::footer>
                         │
                         └─ footer.blade.php
                                │
                                └─ $slot 出力
```

### データフロー図

```
[入力]               [処理]                    [出力]

著作権テキスト ───▶ message.blade.php ───▶ layout.blade.php
     │               (footerスロット設定)      (footerスロット出力)
     │                      │
     └──────────────▶ footer.blade.php ───▶ プレーンテキスト
                      ($slot出力)              フッター
```

### 関連ファイル一覧

| ファイル | パス | 種別 | 役割 |
|---------|------|------|------|
| footer.blade.php | `src/Illuminate/Mail/resources/views/text/footer.blade.php` | テンプレート | テキストメールフッター部品 |
| layout.blade.php | `src/Illuminate/Mail/resources/views/text/layout.blade.php` | テンプレート | テキストメール共通レイアウト |
| message.blade.php | `src/Illuminate/Mail/resources/views/text/message.blade.php` | テンプレート | テキストメール本体構成 |
| Markdown.php | `src/Illuminate/Mail/Markdown.php` | ソース | メールMarkdownレンダラー |
