はじめに
クラウドネイティブなアプリケーション開発が行われている昨今では、アプリケーションエンジニアであってもインフラの知識が必要となることが多々あります。
そんな事例をご紹介する短編エッセイになります。
Episode1 メール送信機能の実装
WebアプリケーションからSMTPプロトコルを発行してメール送信が可能です。
SMTPを扱えるライブラリがあり、簡単に実装できます。
ただプロダクションとしてアプリケーションを運用に載せるには、迷惑メール対策を施す必要あります。
特に、Googleが2024年2月以降に迷惑メール(なりすましメール)対策を大幅に強化した「メール送信者のガイドライン(Email sender guidelines)」を適用すると発表した際には、業界に激震が走ったと言っても過言ではありません。
「メール送信者のガイドライン(Email sender guidelines)」に則するためには、DNSサーバに適切なレコード設定をする必要があります。
当時、小規模でWebアプリケーションを開発していたので、DNS設定に詳しいインフラエンジニアがチームにいなかったため、アプリケーション開発していた私も協力して対策を講じました。
SPF、DKIM、DMARCといった迷惑メール対策の基礎を理解することができました。
また、当時採用していたSMTPを扱うライブラリでは、TLSを上手く実装できなかったため、Postfixを導入することなり、メール送信サーバをガチで構築して更に知識を増やすことができました。
アプリケーション開発者であってもインフラの知識が必要だと思った典型例となりました(笑)。
奮闘の詳細は以下の記事を参照ください。