Firebase Dynamic Linksで生成したURLをメール本文に記載したらGmailにブロックされた

1 min読了の目安(約1600字TECH技術記事

最近作っていたサービスにてユーザーにメールを送信する機能があったのですが、どうしてもGmailで受信できず困っていました。結論から言うとメール本文に記載していたFirebase Dynamic Links[1]が原因でした。

原因特定に至った経緯

メール送信時のログを確認したところ、送信先サーバ(Gmail)から下記エラーメッセージが返却されていました。

Our system has detected that this message is suspicious due to the nature of the content and/or the links within.
To best protect our users from spam, the message has been blocked.
Please visit https://support.google.com/mail/answer/188131 for more information.

👇 DeepL翻訳による日本語訳

このメッセージは、コンテンツの性質やリンクのために疑わしいものであることをシステムが検知しました。
スパムからユーザーを守るために、このメッセージはブロックされています。
詳細については、https://support.google.com/mail/answer/188131 をご覧ください。

この段階ではまだURLに問題があるのか他のメッセージに問題があるのかわからなかったので、問題切り分けのためにメール本文を部分的に置換して配信ステータスに変化があるか何度か検証しました。結果、URLを差し替えることで一瞬でメールが送信されることがわかりました。

まだ厳密にはURL文字列自体に問題があるのか、URLの遷移先をクロールした結果に問題があるのかわかりませんが、恐らく前者だろうと考え対策を講じることにしました。

対策

Firebase Dynamic Linksはデフォルトのドメインとして.page.linkが利用可能なのでそれをそのまま使っていましたが、カスタムドメインを設定するように変更しました

👉 Dynamic Links のカスタム ドメインを設定する

この対応の結果、無事Gmailにメールを送信することができました!

このときは衝動的にツイートしてしまいましたが、よく考えるとFirebase Dynamic Linksは無料の短縮URLサービスなので悪用される可能性が高く、チェックにひっかかってもしょうがないかなと思います。

余談

カスタムドメインを設定した後、iOSだけURLの遷移がおかしくなっていたのですが、SafariのキャッシュクリアとiPhoneの再起動で解決しました。

脚注
  1. Firebase Dynamic Linksはアプリのインストールの有無にかかわらず複数のプラットフォームで機能するURLを生成できるサービスです。 ↩︎