@gmail.com宛のメールが遅延したのはThunderbirdのせい?

## 要約
+ `@gmail.com`ドメインにメールを出したら`Gmail has detected an unusual rate of unsolicited mail originating from your SPF domain`と言われてメール配送が遅延したり、届かなかったりした。
+ Thunderbirdからメールを出す時にヘッダーに`Content-Language: en-US`がつくが、「設定エディター」で `mail.suppress_content_language` を `true` にしたところ配送が可能になった。
+ `@gmail.com`ドメイン側の仕様の問題だし、しばらくしたら再発生したので、本当にこれが原因だったのかは藪の中。

## 環境
+ 共用のレンタルメールサーバー
+ Thuderbird 115.8.1(64bit)上記のメールサーバーから送信
+ 受信者のアドレスは`@gmail.com`ドメイン
+ 2024/2/24ごろ発生して、2024/3/9に上記で解決
+ と思っていたら、2024/3/20に再発生

## 現象
### 発生前 
設定の勉強なども兼ねて、一部のメールを共用のレンタルメールサーバーで運用している。発信メール数は非常に少ないのだが、2024/2/24までは問題なく利用できていた。

なお、直近のメール関連の話題としては、gmailが2024/2/1から[ガイドラインを変更](https://support.google.com/a/answer/81126?hl=ja)し、SPF, DKIM, DMARCへの対応を求めるようになったことが有名だが、これらについては既に正しく対応している。

### 発生
2024/2/24にメールを送信したところ、しばらくしてメールが送信できていませんという通知がメールで来た(以下は一部伏せ字)。
```
<<< 421-4.7.28 Gmail has detected an unusual rate of unsolicited mail originating
<<< 421-4.7.28 from your SPF domain [xxxxx.jp      35]. To protect
<<< 421-4.7.28 our users from spam, mail sent from your domain has been temporarily
<<< 421-4.7.28 rate limited. For more information, go to
<<< 421-4.7.28  https://support.google.com/mail/?p=UnsolicitedRateLimitError to
<<< 421 4.7.28 review our Bulk Email Senders Guidelines. 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - gsmtp
... while talking to alt1.gmail-smtp-in.l.google.com.:

```
別経路で送信先に問い合わせたところ、数時間単位で遅延はしているもののメールは届いているらしい。推定遅延時間は7-8時間程度か。

### 再現
同じ宛先に再度メールを送信したところ、やはり同様の通知が来て遅延して届く。別の`@gmail.com`アドレスにメールを出したら、今度は上記のメッセージを含まない通知が来て、1日待ってもメールが届かなかった。(なお、約4日間遅延して忘れた頃に届いた)

`@gmail.com`ドメインでないアドレスには遅延なくメールが届くことが確認できた。

## 検討
### SPF, DKIM, DMARK
この時期の障害原因として真っ先に思い浮かぶのが、gmailのガイドライン変更で対応が要求されるようになったSPF, DKIM, DMARCだが、DMARCについてはにデータを収集する設定にしあり、検証の結果が送られていた(以下も一部伏せ字)。

```xml
  <record>
    <row>
      <source_ip>xxx.xxx.xxx.xxx</source_ip>
      <count>15</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>pass</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>xxxxx.jp</header_from>
    </identifiers>
    <auth_results>
      <dkim>
        <domain>xxxxx.jp</domain>
        <result>pass</result>
        <selector>xxxxxxx</selector>
      </dkim>
      <spf>
        <domain>xxxxx.jp</domain>
        <result>pass</result>
      </spf>
    </auth_results>
  </record>
```
SPFとDKIMについては`pass`となっているので、おそらくこれらの問題ではなさそうだった。

### サーバーの共有者を疑う
次に疑いたくなることとして、共用のメールサーバーなので他のドメインのメールサーバーもホストされており、他のドメイン名でメールサーバーを利用している人が大量にメールを発信すると、IPアドレスを共有する自分のドメイン名が巻き添えを食らうといった事態が考えられる。
あるいは、自分のドメイン名の一つ上位ドメイン(同じサーバーレンタル会社のサーバーを借りている人の間で共通する部分)のレベルで規制されたという可能性も同様にありえる。

そういったことも考えたが、"from your SPF domain"の後に自分が使用しているドメインがFQDNでバッチリ書かれており、巻き添えの線は薄いと考えざるを得なかった。

### メッセージ(ガイドライン)の検討
ここでようやく人のせいにすることを諦めて自らを省みる(自身の行動に心当たりはなかったし、メッセージを精読するのが面倒だった)。
~~あまりにも心当たりがないので、ガイドラインに「スパムの比率が0.1%未満」といったことが書かれていたし、受信者がspamフォルダに突っ込んだのではと疑いすらした。~~

メッセージに"unsolicited mail"(招かれざるメール)とあるので、スパム送信と判定されたことは推察できる。しかし、そもそもこのメールサーバーからのメール送信数は2桁とかのレベルで、しかもCcやBccのない単発のメールだけである。数などを基準にしているなら到底スパムとは言えない。

メッセージには[メール送信者のガイドラインへのURL](https://support.google.com/mail/?p=UnsolicitedRateLimitError)が記されているが、そこには[Postmaster Tools](https://support.google.com/a/answer/9981691)を使って、自己のドメインの評価を確認するとある。使ってみようとするとドメインの所有権証明を求められる。さらに[所有権証明手順](https://support.google.com/a/answer/183895)を調べると、DNSレコードの操作を求められた。

メールサーバーのみのレンタルであるため、DNSレコードはレンタル会社により自動設定されるため変更の余地がなく、ここで詰み。

### ヘッダーの見直し
やはり自分のメールに原因があるのだろうかということでヘッダーを見直すと、`Content-Language: en-US`という行が目についた。

このヘッダー自体は昔から存在していることを認識していたが、正規の設定方法には`ja-JP`に修正する方法がなかったし、害もないので放置していた。しかし、よく考えてみるとヘッダーで英語といいつつ日本語メールを出しているのは一種の虚偽であり、スパムと判断される材料にされかねないと思い当たった。 

## 修正と検証
### Thunderbirdの設定
`Content-Language: ja-JP`と変更するのが理想だが、[昔出来ていた方法](https://forums.mozillazine.jp/viewtopic.php?f=3&t=17981&p=67047)はファイル拡張子が一致しておらず、今は通用しないことが判明。

同じページに `mail.suppress_content_language` を `true` にすると`Content-Language`ヘッダー自体がなくなると書かれていたため、変更した。

### 検証
遅延の起きないアドレスに送信して`Content-Language`ヘッダーがないことを確認した。

前述の4時間以上遅延したアドレスと、4日ほど遅延したアドレス両方に送信してみたが、両方のアドレスで遅延なく受信されたことが確認できた。

## 考察
### 再現性の未評価
ドメインにSPAM送信者の評価がつくと自力で復元することができないので、もう一度設定を変更して再現確認することは出来ない。

### メール内容について
配送遅延になったメールの内容は参考用のURLとかを含んでいたり、添付ファイルなどがあったので、内容的にスパムっぽいと言われたらそう言えなくもない。
しかし、添付ファイルといっても実行ファイルではなく画像だし、URLにしても普通のやり取りでもこれくらいのことはあるんじゃないかと言いたくなる。

しかしながら、4日間遅延したメールは説明文1行とURLのみだったので、gmail.comのスパムフィルターからより厳しい判断を受けた可能性は否定できない。

### 愚痴
gmail側にしてもスパム対策が大事なのはわかるが、一般人のメールが届かなくなるのは本末転倒ではなかろうか。たとえこの記事が存在意義を失おうとも、対応なしで`@gmail.com`に届く世界が戻ってくるよう願いたい。

## 修正後も再発生
上記の修正にもかかわらず、2024/3/20に再度メールを出したところ2024/2/24と同様のメールが戻ってきた。やはりThunderbirdではなく、メールの内容によるのだろうか。

それとも、この記事を読んだスパム業者が真似をして巻き添えを食ったのだろうか(自意識過剰)。

## 改訂履歴(表現の修正などは除く)
+ 2024/3/10: 作成開始
+ 2024/3/11: 初版
+ 2024/3/20: 修正後再発生の報告