SMTPプロキシは、他のタイプのプロキシサーバーと同様に、メール転送エージェント(MTA)のストアアンドフォワード方式を使用せずに、シンプルメール転送プロトコル(SMTP)セッションを他のSMTPサーバーに転送する特殊なメールサーバーです。SMTPプロキシが接続を受け入れると、宛先SMTPサーバーへの別のSMTPセッションを開始します。宛先サーバーからのエラーやステータス情報は、プロキシを介して送信元のMTAに返されます。[ 1 ]
SMTPプロキシは、受信および送信メールトラフィックを処理およびフィルタリングするためによく使用されます。[ 2 ]
SMTPプロキシは、電子メールシステムの最初のネットワークに面した層として機能し、クライアントからのSMTP接続を処理してからデータを第2層のメールサーバーに転送します。[ 3 ] SMTPプロキシは、受信スパム対策フィルタリングシステムの最初の、または唯一の防御層として実装されることが多く、スパムコンテンツフィルタやウイルス対策プログラムを使用してメッセージを分析したり、 DNSブラックリストや評判システムを使用して接続をブロックまたはレート制限したり、 SMTP接続の負荷分散を行ってメールサーバーの過負荷を防いだりすることができます。
SMTPプロキシはMTAのようにメッセージを保存しないため、SMTP接続やメッセージコンテンツをリアルタイムで拒否することができ、インターネットメールシステムにおける深刻な問題であるバックスキャッターメールの原因となる帯域外配信不能レポート(NDR)の必要性を排除します。
一部の SMTP プロキシはTCP 接続管理 (フロー制御とも呼ばれる) を実装しており、悪意のある SMTP クライアントからの TCP トラフィックの急増によって下流のメール サーバーに与える損害を軽減するのに役立ちます。SMTP のコンテキストにおける TCP 接続管理は、通常、帯域幅の制限や SMTP コマンド応答の遅延 (ターピッティングとも呼ばれる) を伴います。速度が低下すると、スパムボットなどの一部の悪意のある SMTP トラフィックの送信元は、完全な電子メール メッセージの配信を続けるよりも諦める傾向があります。[ 4 ]
ネットワークターピッティングは、各SMTP接続の処理速度が通常よりも遅くなり、メモリやCPUなどの貴重なシステムリソースを占有してしまうため、メールサーバー内で実装するのが難しい場合があります。SMTPプロキシは、非同期I/Oなどの軽量プログラミング技術(nginx、Node.js、Netty、libeventなど)を使用して実装できるため、本格的なストアアンドフォワード型メールサーバーで処理する接続数よりもはるかに少ないリソースで、数千の接続を処理することが可能です。
SMTPプロキシは、ローカルネットワーク上の送信メールサーバーとインターネット上の受信サーバーの間に挿入されることがあります。SMTPプロキシは、この文脈では送信スパムをフィルタリングするために使用されることが多いですが、 DomainKeys Identified Mail (DKIM)署名などの他のアプリケーションも存在します[ 5 ]。
SMTPプロキシには、いくつかの基本的な種類があります。