はじめに
Webアプリでユーザーに認証メールや通知メールを送信したい場合、「メールを送る仕組み」が必要になる。しかし、「メールサーバーとは何か?」「Postfixとは何か?」「Gmailを使うにはどうするのか?」といった基本を理解していなかったため、今回はその基本から仕組みを整理する。
アプリからメールを送るには?
アプリからユーザーにメールを送るためには、次のような流れが必要。
- アプリから、メール送信を代わりにやってくれる「送信用サーバー(SMTPサーバー)」にデータを渡す
- 送信用サーバーが、宛先の「受信用メールサーバー」にメールを届ける
Postfixとは?
Postfixは、メールを送るためのサーバーソフトウェアで、Linux(Ubuntuなど)にインストールして使う。役割としては、アプリから受け取ったメールを一時的にキューに保存し、SMTPというプロトコルを使って次の送信先へ転送する。
つまり、Postfixは「メールを外に送り出すための中継役」。
GmailのSMTPサーバーとは?
Gmailには smtp.gmail.com
というSMTPサーバーが存在する。これは、Googleが運用しているメール送信用のサーバーで、Gmailユーザーがメールを送信するために使用される。
Postfixからこのサーバーに接続して、認証情報(ユーザー名・パスワード)を渡すことで、Gmail経由でメールを送信できる。
実際の流れを整理する
次のような構成を考える。
[アプリ]
↓ SMTPで送信依頼
[Postfix(Ubuntuにインストール)]
↓ SMTPリレー
[smtp.gmail.com(GmailのSMTPサーバー)]
↓ DNSで相手ドメインのMXレコードを調査
[相手の受信用メールサーバー]
↓
[相手が受信して読む]
この流れにより、アプリはPostfixに送信を任せ、Postfixは信頼されたGmailにリレーし、Gmailが最終的な配信を担う。
まとめ
- メール送信には、SMTPというプロトコルを使って送信用サーバーに接続する必要がある
- Postfixは、Ubuntuなどに導入して使う自前のメール送信サーバー
- GmailなどのSMTPサーバーを中継先として使うことで、信頼性が高まる
- メールは、送信側のSMTPサーバーから、宛先の「受信用メールサーバー」へ送られる