> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 顧客メールログ

> Dodo Payments が顧客に代わって送信したすべてのトランザクションメールを確認し、届いたかどうかを確認し、送信時とまったく同じ内容を読み、再送信できます。

<CardGroup cols={2}>
  <Card title="List Customer Emails" icon="list" href="/api-reference/customers/list-customer-emails">
    顧客に送信したメールと、その配信結果を確認します。
  </Card>

  <Card title="Get Email Content" icon="envelope-open" href="/api-reference/customers/get-customer-email-body">
    1通のメールを送信時とまったく同じ内容で確認します。
  </Card>
</CardGroup>

## 概要

Dodo Payments は、レシート、返金通知、サブスクリプション通知、督促および回収メール、entitlement の付与、Customer Portal のログインリンクなどのトランザクションメールを、お客様に代わって顧客に送信します。

顧客の **送信済みメール** タブには、各メールが記録されます。すべてのメールについて、何が送信されたか、どこまで届いたか、届かなかった場合はその理由を確認できます。顧客が受信したメールを開いて確認したり、再送信したりすることもできます。

<Frame>
  <img src="https://mintcdn.com/dodopayments/9G2eOufWVa-OvQvG/images/email-logs/sent-emails-tab.png?fit=max&auto=format&n=9G2eOufWVa-OvQvG&q=85&s=6c7fa235800cee5c32eb286312f2a52b" alt="顧客の送信済みメールタブ。各メールと配信ステータスが一覧表示されている" style={{ maxHeight: '500px', width: 'auto' }} width="2310" height="996" data-path="images/email-logs/sent-emails-tab.png" />
</Frame>

<Info>
  メールは **180日間** 保存されます。配信ステータスはメールプロバイダーから取得され、イベント発生から数秒以内に更新されます。
</Info>

## 顧客のメールを確認する

<Steps>
  <Step title="Open the customer">
    ダッシュボードで **Customers** に移動し、顧客を選択します。
  </Step>

  <Step title="Open the Sent Emails tab">
    このタブには、過去180日間にこの顧客へ送信されたすべてのメールが新しい順に一覧表示されます。
  </Step>

  <Step title="Read a row">
    各行には、件名、その下に送信者、カテゴリ、日時、配信ステータスが表示されます。
  </Step>
</Steps>

## 配信ステータス

| ステータス        | 意味                                            |
| ------------ | --------------------------------------------- |
| `sent`       | Dodo Payments がメールをプロバイダーに引き渡しました。メールは配信中です。  |
| `delivered`  | 受信側のメールサーバーがメールを受け付けました。                      |
| `failed`     | メールは届きませんでした。失敗理由が表示されます。                     |
| `complained` | 受信者がメールをスパムとしてマークしました。                        |
| `blocked`    | 何も送信されませんでした。テストモードでは、週次の送信許容量を使い切ったことを意味します。 |

### 失敗理由

メールが失敗すると、その行に理由が表示され、対応が必要かどうかを判断できます。**Failed** ステータスをポイントすると、理由を確認できます。

| 理由                   | 意味                                       | 対応                |
| -------------------- | ---------------------------------------- | ----------------- |
| メールボックスが存在しない        | そのアドレスは存在しません。                           | 顧客のメールアドレスを修正します。 |
| メールサーバーによりアドレスが拒否された | 受信側サーバーがそのアドレスを拒否しました。                   | 別のアドレスを使用します。     |
| 以前の失敗後にアドレスがブロックされた  | 以前のハードバウンスまたは苦情を受け、プロバイダーがこのアドレスを抑制しました。 | 別のアドレスを使用します。     |
| メールボックスがいっぱい         | 受信者のメールボックスの空き容量がありません。                  | 後でもう一度送信します。      |
| 一時的な配信失敗             | 受信側サーバーで一時的な問題が発生しています。                  | 後でもう一度送信します。      |
| メッセージが大きすぎるため拒否された   | 受信側サーバーがサイズを理由に拒否しました。                   | サポートに問い合わせます。     |
| 受信者がメールをスパムとしてマークした  | 受信者がメールを報告しました。                          | 再送信しないでください。      |
| メールを送信できなかった         | プロバイダーが送信を拒否しました。                        | もう一度送信します。        |

これらの理由のうち5つでは、再送信時に別のアドレスが必要です。同じアドレスでは再び失敗するためです。該当するのは、メールボックスが存在しない、アドレスがメールサーバーにより拒否された、以前の失敗後にアドレスがブロックされた、メッセージが大きすぎるため拒否された、受信者がメールをスパムとしてマークした、の5つです。

## メールを読む

行の **Resend** を選択すると、メールパネルが開きます。このパネルの **Email Preview** には、保存されたコピーが送信時とまったく同じ内容で表示されます。

<Frame>
  <img src="https://mintcdn.com/dodopayments/9G2eOufWVa-OvQvG/images/email-logs/email-preview.png?fit=max&auto=format&n=9G2eOufWVa-OvQvG&q=85&s=b0d00b4b6fe62c6ace0b8a2b4419619b" alt="保存されたメールの内容。顧客が受信した状態で表示されている" style={{ maxHeight: '500px', width: 'auto' }} width="824" height="1148" data-path="images/email-logs/email-preview.png" />
</Frame>

内容を表示できないメールもあります。

* **Customer Portal のログインメール。** 有効なログインリンクが含まれるため、内容は表示されません。
* **ブロックされたメール。** プロバイダーに届いていないため、コピーは存在しません。
* **180日を超えたメール。** その時点でプロバイダーが内容を消去します。

## メールを再送信する

行の **Resend** を選択すると、同じメールを再送信できます。Dodo Payments は元のイベントからメールを再生成するため、レシートには常に支払いの現在の状態が表示されます。

<Frame>
  <img src="https://mintcdn.com/dodopayments/9G2eOufWVa-OvQvG/images/email-logs/resend-email.png?fit=max&auto=format&n=9G2eOufWVa-OvQvG&q=85&s=8751c05df35b14f116c8d487eaae7b70" alt="メール行の再送信コントロール。別のアドレスに送信するオプションが表示されている" style={{ maxHeight: '500px', width: 'auto' }} width="896" height="2104" data-path="images/email-logs/resend-email.png" />
</Frame>

パネルの **To** フィールドには元のアドレスが保持されます。別の宛先に送信する場合は変更してください。永続的な失敗の後は、同じアドレスでは再び失敗するため、別のアドレスが必要です。

<Warning>
  再送信は新しいメールとして扱われます。タブには独自の行として表示されます。
</Warning>

### 制限

* 各メールは **3回** まで再送信できます。
* 試行の間には待機時間があります。1回目の再送信前は5分、2回目の前は10分、3回目の前は15分です。
* プロバイダーに一度も届かなかった送信は、3回の上限にはカウントされません。ただし、待機時間には加算されます。
* 再送信はダッシュボードでのみ利用できます。API は読み取り専用です。

### 再送信できない場合

| ケース                 | 理由                           |
| ------------------- | ---------------------------- |
| 受信者がメールをスパムとしてマークした | 再送信すると、その苦情に反することになります。      |
| アドレスが抑制されている        | プロバイダーは送信を受け付けた後に破棄します。      |
| 同じメールの後続の送信がすでに行われた | この行は履歴です。再送信すると2通目が届いてしまいます。 |
| 顧客がブロックされている        | ブロックされた顧客には、これ以上メールが届きません。   |
| 3回の再送信を使い切った        | 上限はメールごとに適用されます。             |

<Note>
  Customer Portal のログインメールは、必ずそのメールを要求したアドレスに送信され、再送信するたびに新しいログインリンクが発行されます。
</Note>

## テストモード

テストモードでは実際のメールが送信されるため、**1ビジネスあたり週100通** の送信許容量があります。再送信も同じ許容量を使用します。

許容量を使い切ると、それ以降のメールは `blocked` として記録され、送信されません。行には「Not sent: the test-mode email allowance for this week is spent」と表示されます。許容量は毎週リセットされます。ライブモードにはこの制限はありません。

<Info>
  Customer Portal のログインメールはテストモードでは送信されず、許容量も消費しません。
</Info>

## API でメールを確認する

一覧と内容は API key 経由でも利用できるため、独自のサポートツールに配信状態を表示できます。

<CodeGroup>
  ```bash cURL theme={null}
  curl https://live.dodopayments.com/customers/{customer_id}/emails?page_size=10 \
    -H "Authorization: Bearer $DODO_API_KEY"
  ```

  ```typescript Node.js theme={null}
  const res = await fetch(
    `https://live.dodopayments.com/customers/${customerId}/emails?page_size=10`,
    { headers: { Authorization: `Bearer ${process.env.DODO_API_KEY}` } },
  );
  const { items, total_count } = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.get(
      f"https://live.dodopayments.com/customers/{customer_id}/emails",
      params={"page_size": 10},
      headers={"Authorization": f"Bearer {os.environ['DODO_API_KEY']}"},
  )
  items = res.json()["items"]
  ```
</CodeGroup>

各アイテムには `status`、送信に失敗した場合の `failure_code` と `failure_reason`、保存された内容が存在するかどうかを示す `has_preview` が含まれます。また、その行に対して実行できる操作を示す `policies` オブジェクトも含まれます。

| フィールド                        | 意味                                   |
| ---------------------------- | ------------------------------------ |
| `resend_allowed`             | この行を再送信できます。                         |
| `retry_allowed`              | 送信に失敗しており、再試行できます。                   |
| `resends_remaining`          | そのメールに残っている再送信回数です。                  |
| `requires_different_address` | 同じアドレスでは再び失敗するため、別のアドレスを指定する必要があります。 |
| `superseded`                 | 同じメールの後続の送信によって、この行が置き換えられました。       |

自分で送信可否を判定するのではなく、`policies` を確認してください。サーバーが上記のルールを適用します。

<CardGroup cols={2}>
  <Card title="Customer Management" icon="user-group" href="/features/customers">
    顧客、購入履歴、セルフサービスアクセスを管理します。
  </Card>

  <Card title="Communication Preferences" icon="bell" href="/features/communication-preferences">
    Dodo Payments に代わって送信するメールを選択します。
  </Card>
</CardGroup>
