Cloudflare Area 1 Email Security で Gmail 向け Retraction による挙動を確認する

# 要件

以下の記事にある設定が完了していることが前提です。

- [Cloudflare Area 1 Email Security 用に Gmail BCC 設定を行う - Qiita](https://qiita.com/khayama/items/f1de39df341a5db2b323)

# Retraction 設定

以下のドキュメントに従い、構成できます。

- [Retraction guide for Gmail · Cloudflare Area 1 Email Security docs](https://developers.cloudflare.com/email-security/email-configuration/retract-settings/gmail-retraction/)

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/2c416703-7d71-8e57-6cf0-885b5db6cf9f.png)

例えば、Auto Retraction （自動撤回）設定を以下のように構成し、Disposition（検知内容）によって、どのようなフォルダに移動されるのかを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/e0dfb0de-7178-77e8-6eae-6fee1cc8b4ed.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/2e31c8ce-ac7a-4b46-2264-4c78d6d6dcae.png)

# 確認方法

Cloudflare Area 1 Email Security では、 `X-Area1Security-Request-Disposition` ヘッダを付与することで、指定の Dispositions（メール脅威検知判定）とすることができます。

- [Dispositions and attributes · Cloudflare Area 1 Email Security docs](https://developers.cloudflare.com/email-security/reference/dispositions-and-attributes/)

以下の Cloudflare Pages でメールフォームを作成できる仕組みを応用します。

- [Cloudflare Workers から MailChannels でメール送信するついでに Cloudflare Pages でコンタクトフォームを作る - Qiita](https://qiita.com/khayama/items/87640de36b72d2ceaade#cloudflare-pages-%E3%81%A7%E3%82%B3%E3%83%B3%E3%82%BF%E3%82%AF%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)

Cloudflare Pages の MailChannels プラグインを使った際もヘッダを付与するオプション（`headers` もしくは `personalizations > headers`）があり、 `formData` から動的に付与することも可能です。

- [Transactional API](https://api.mailchannels.net/tx/v1/documentation)
- [Please help a beginner understand how to use dynamic values with the Mailchannels plugin : r/CloudFlare](https://www.reddit.com/r/CloudFlare/comments/122ku8c/please_help_a_beginner_understand_how_to_use/)

今回は以下のツールを作成しましたので、Cloudflare Pages にデプロイして使います。

- [kyouheicf/cf-area1-trigger](https://github.com/kyouheicf/cf-area1-trigger)

https://cf-area1-trigger.pages.dev/

# NO ACTION (Spoof)
以下のように `SPOOF` 指定して送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/55a5faa5-154a-8da6-badc-5424798187a2.png)

`NO ACTION` のため、通常通りユーザの受信箱に入ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/15a886a6-1de9-8ea4-6396-ea6f2e388b67.png)

# TRASH (Suspicious)
以下のように `SUSPICIOUS` 指定して送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/efc14302-8996-1219-8050-91fa51f03db0.png)

`TRASH` のため、ユーザのごみ箱フォルダに入ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/55ec30bf-7776-d338-3b07-0e2c221b390f.png)

# JUNK EMAIL (Bulk)
以下のように `BULK` 指定して送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/2edffd98-c2f0-8b0c-67c0-af8baecb22db.png)

`JUNK EMAIL` のため、ユーザの迷惑メールフォルダに入ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/aace364b-1df3-866f-cf78-27bd8f577e8c.png)

# SOFT DELETE (Spam)
以下のように `SPAM` 指定して送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/14590bc3-5516-548b-2c72-046a3a613728.png)

`SOFT DELETE` のため、ユーザのごみ箱フォルダに入ります。

`Microsoft only` とドキュメントにはありますが、Gmail の場合 `TRASH` と同じ挙動になります。

> https://developers.cloudflare.com/email-security/email-configuration/retract-settings/gmail-retraction/#3-configure-auto-retraction-actions-in-area-1
> Soft Delete — user recoverable (Microsoft only): Sends the message to the user’s Deleted Items folder. Messages can be recovered by the user.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/1d9a2400-81c0-484f-704e-8128dcae12ee.png)


# HARD DELETE (Malicious)
以下のように `MALICIOUS` 指定して送信します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/a0137936-f388-cb2d-ee19-4f04640ef726.png)

`HARD DELETE` のため、ユーザのフォルダにも無く Gmail の場合、管理者でも復旧不可の完全削除となります。

>https://developers.cloudflare.com/email-security/email-configuration/retract-settings/gmail-retraction/#3-configure-auto-retraction-actions-in-area-1
Hard Delete — admin recoverable (Microsoft and Google): Completely deletes messages from a user’s inbox. For Office 365, the message will be deleted and cannot be recovered without using the admin eDiscovery feature. For Google Gmail messages cannot be recovered, even by the admin.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/a77d966e-772c-0455-ba2a-cf455d936658.png)


# Cloudflare Area 1 Email Security 検知ログ
以下のように  `X-Area1Security-Request-Disposition` ヘッダ指定により検知がリクエストされたことがログとして確認できます。

> Sender requested disposition MALICIOUS

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101361/b9d2aabe-bb43-78d6-44a0-28ca600300e8.png)