技術解説 · 出典付きの回答
メール転送エージェント(MTA)とは?
メール転送エージェント(MTA)とは、簡易メール転送プロトコル(SMTP)を使って、電子メールのメッセージをあるコンピューターから別のコンピューターへ転送するソフトウェアです。リレーとして機能し、メールユーザーエージェント(MUA)や別のMTAからメッセージを受け取り、DNSのMXレコードに基づいて宛先サーバーへルーティングします。
仕組み
MTAは特定のポートで待ち受けて動作します。サーバー間の通信には通常ポート25が使われます。メッセージが届くと、MTAは受信者のアドレスを解析し、ドメインネームシステム(DNS)に宛先ドメインのMail Exchanger(MX)レコードを問い合わせ、対象サーバーとのTCP接続を確立します。宛先が利用できない場合、MTAはメッセージをキューに入れ、あらかじめ決められたスケジュールに従って後で再試行します。
送信者にとっての重要性
MTAは受信サーバーとの実際の送信やハンドシェイクを担うため、到達率にとって非常に重要です。適切に設定されたMTAは、メッセージが認証済みの経路で送信され、プロトコルの標準に従うことを保証します。送信者は多くの場合、専用のMTAやクラウドプロバイダーを使ってIPレピュテーションを管理し、ルーティングの不備や認証の欠如によってメールが受信サーバーに拒否されないようにしています。
運用上の考慮事項
運用上のよくある失敗には、リレー設定の誤りによってオープンリレーとなり、迷惑メールの送信に悪用されるケースがあります。また、送信を暗号化するためにMTAでSTARTTLSを設定しておく必要もあります。SendHQの無料ツールを使うと、SPFなどMTAを支えるDNSレコードが正しい形式になっているかを確認でき、なりすましを防いで送信エージェントの信頼性を高められます。
具体例
典型的な流れでは、ユーザーがOutlook(MUA)からメールを送信します。OutlookはそのメールをローカルのPostfixやEximのサーバー(MTA)に送ります。このMTAはgmail.comのMXレコードを調べてGoogleのメールサーバーのIPを見つけ、SMTPでメッセージをリレーします。GoogleのMTAはメッセージを受け取り、ローカル配信エージェント(LDA)に渡して、ユーザーの受信トレイに格納させます。
MTAとMDAの違い
MTAがネットワーク上でのメールの転送とルーティングを担うのに対し、メール配信エージェント(MDA)は最終段階を担います。MDAはチェーンの最後のMTAからメッセージを受け取り、ディスク上の特定のユーザーのメールボックスに書き込みます。そこからIMAPやPOP3などのプロトコルでアクセスできるようになります。
よく寄せられる質問
SMTPサーバーはMTAと同じものですか?
はい、実用上はリレーとして動作するSMTPサーバーがメール転送エージェントです。SMTPは、MTAが通信に使うプロトコルです。
1台のサーバーがMTAとMDAの両方を兼ねることはできますか?
はい、PostfixやSendmailなど多くのメールサーバーソフトウェアは、サーバー間のメール転送とローカルのメールボックスへの最終配信の両方を処理します。
MTAがMXレコードを見つけられない場合はどうなりますか?
MXレコードが存在しない場合、一部のMTAはドメインのAレコードへのメール配信を試みます。ただし、現在の構成ではこれはあまり一般的ではありません。
クラウドのメールAPIはMTAを使っていますか?
はい、クラウドプロバイダーは大規模なMTAのクラスターを運用し、APIで送信されたメールのスケーリング、キューイング、配信を処理しています。
一次情報源
- RFC 5321:簡易メール転送プロトコル(SMTP) — RFC Editor
- サービス名およびトランスポートプロトコルのポート番号レジストリ — IANA