0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アプリからメールを送信する仕組みを理解する

Posted at

はじめに

Webアプリでユーザーに認証メールや通知メールを送信したい場合、「メールを送る仕組み」が必要になる。しかし、「メールサーバーとは何か?」「Postfixとは何か?」「Gmailを使うにはどうするのか?」といった基本を理解していなかったため、今回はその基本から仕組みを整理する。


アプリからメールを送るには?

アプリからユーザーにメールを送るためには、次のような流れが必要。

  1. アプリから、メール送信を代わりにやってくれる「送信用サーバー(SMTPサーバー)」にデータを渡す
  2. 送信用サーバーが、宛先の「受信用メールサーバー」にメールを届ける

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サーバーから、宛先の「受信用メールサーバー」へ送られる
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?