Mailgunに寄せられるSMTPポート番号に関する質問はよくあります。 SMTP(Simple Mail Transfer Protocol)エンドポイントへの接続性を確保するため、Mailgunでは複数のSMTPポートを用意していますが、メール送信時にはどのポートを使用すればよいのでしょうか。 ここでは、各SMTPポートの歴史的な考察を行い、その後、今日の送信メール使用の方法論について説明します。
SMTPポートとは
歴史を振り返る前に、いくつかの基本的な定義を確認しておきましょう。
SMTPとはSimple Mail Transfer Protocolの略で、簡単に言えば、インターネット上で電子メールを送信するプロセスです。 コンピュータのポートとは、個々のコンピュータがネットワークに接続し、電子的な処理を行うためのものです。
もちろん、コンピュータに複数のポートがあるように、SMTPにもたくさんのポートがあります。
SMTP ポート。
1982年、南カリフォルニア大学はインターネット技術タスクフォース (IETF) に提案を行いました。 RFC(Request For Comments)821が発行され、25番ポートがインターネット電子メールのデフォルトの送信チャネルとして確立されました。 30年経った今でも、2つのメールサーバー間で電子メールを送信する主要な手段として、ポート25が使用されています。 初期のSMTP RFCは、いくつかのRFCによって廃止されました。
1998年12月、R.GellensとJ.Klensinは、インターネットの電子メール通信に新しい仕様を追加することを支持して、RFC 2476を提出しました。 このRFCでは、従来のメッセージ送信とメッセージ中継の概念を分割することを提案しました。
ポート 465 について
興味深いことに、ポート 465 は IETF によって公式の SMTP 送信または送信チャネルとして公開されたことはありません。 その代わりに、インターネットのコア インフラの多くを管理している Internet Assigned Numbers Authority (IANA) が、SMTPS 用にポート 465 を登録しました。 その目的は、SMTPがSSL(Secure Sockets Layer)を使って動作するためのポートを設定することでした。
このポートは約1年間割り当てられていましたが、SMTPの通信をTLS(Transport Layer Security)で保護することを支持して取り消されました。 その決め手となったのは、RFC2487で紹介された新しいプロトコルコマンド「STARTTLS」でした。 このコマンドは、送信先のサーバがTLSの暗号化をサポートしているかどうかを広告することで、SMTPサーバが既存のポートで通信できるようにするものです。
MailgunがTLS接続に対応していることは、接続してコマンドラインインタフェースから「ehlo」を発行することで確認できます。
MailgunがTLS接続に対応していることは、接続してコマンドラインインターフェイスから「ehlo」を発行することで確認できます。
> telnet smtp.mailgun.org 587
2Trying 50.56.21.178...。
3smtp.mailgun.orgに接続されました。
4エスケープ文字は'^]'です。
5220 ak47 ESMTP ready
> ehlo blog.mailgun.com
7250-ak47
8250-。AUTH PLAIN LOGIN
9250-SIZE 52428800
10250-8BITMIME
11250-ENHANCEDSTATUSCODES
12250 STARTTLS
任意のSMTPサーバーで同じコマンドシーケンスを使用してテストすることができます。 GmailやYahooでは、「telnet gmail-smtp-in.l.google.com 25」や「telnet mta7.am0.yahoodns.net 25」などを試してみてください。 これらの標準的なポートはどのように違いますか?
Port 25:
SMTPポート25は、主にSMTPリレーのために使用され続けています。
ほとんどの場合、最新の SMTP メール クライアント (Microsoft Outlook、Mail、Thunderbird など) はこのポートを使用すべきではありません。
ほとんどの場合、最新のSMTPメールクライアント(Microsoft Outlook、Mail、Thunderbirdなど)はこのポートを使用してはいけません。 特にメール サーバーを管理している場合を除き、あなたのコンピューターまたはサーバー上でこのポートを通過するトラフィックはないはずです。
ポート 465:
IANAはこのポートに新しいサービスを再割り当てしたので、もはやSMTP通信には使用すべきではありません。
しかし、かつてIANAによって有効であると認識されていたので、この接続方法しか使用できないレガシーシステムがあるかもしれません。
しかし、かつてはIANAで有効とされていたため、この接続方法しか使えないレガシーシステムがあるかもしれません。 Googleで検索すると、消費者向け受信サービスプロバイダー(ISP)の記事では、ポート465を推奨設定としているものが多く見られます。
ポート 587:
これはデフォルトのメール送信ポートです。
このポートは、TLS 暗号化と相まって、電子メールが安全に送信され、IETF によって定められたガイドラインに従っていることを保証します。
すべてのMailgunユーザーは、上流のネットワークやホスティングプロバイダーによって明示的にブロックされていない限り、ポート587をデフォルトのSMTPポートとして使用することを検討すべきです。
ポート2525:
このポートは、IETFやIANAによって承認されていません。 その代わり、Mailgunでは、上記のポートがブロックされた場合の代替ポートとして、ポート587を反映したポートを提供しています。 2525は伝統的ではない高いポート番号であるため、一般消費者向けのISPやGoogle Compute Engineのようなクラウドホスティングプロバイダーでは通常許可されています。 上記のポートを試しても接続に問題がある場合は、ポート2525を試してみてください。
POPとIMAPについて
POP(Post Office Protocol、最新版はPOP3)とIMAP(Internet Message Access Protocol)は、OutlookやThunderbirdなどの電子メールクライアントがメールサーバーからメールを取得するために、消費者向けインターネットで開発された最初のプロトコルのうちの2つです。
一般的に、POPではTCPポート110番と995番、IMAPではTCPポート143番と993番が使用され、それぞれ安全でないセッションと安全なセッションに使用されます。 POPとIMAPは、メールの状態(既読、フラグ、迷惑メールなど)をサーバーに反映させたり、オフラインでのアクセスを容易にするためにメッセージのコピーをローカルマシンに保存するなど、それぞれが得意とする機能を持っていました。
これは、Mailgunで使用できるポートには影響しません。
Using SMTP with Mailgun
SMTPは何年も前から存在しており、SMTPを使うべきか、MailgunのAPIエンドポイントを使うべきか、多くの人が質問してきます。
確かに、APIを中心に構築することには、ある程度のベンダー ロックインがあることを認識しています。
確かに、APIを中心に構築することに関連して、ある程度のベンダーロックインがあることは認識しています。
例えば、私のコンピューターとMailgunのSMTPエンドポイント間の典型的なTLSメール会話を考えてみましょう:
> openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
2250 STARTTLS
> ehlo blog.mailgun.com
4250-ak47
5250- です。AUTH PLAIN LOGIN
6250-SIZE 52428800
7250-?8BITMIME
8250-。ENHANCEDSTATUSCODES
> AUTH PLAIN AHBvc3RtYXN0ZXJAc2FtcGxlcy5tYWlsZ3VuLm9yZwAza2g5dW11am9yYTU=
10235 2.0.0 OK
> MAIL FROM:<[email protected]>
12250 送信者のアドレスを受け付けました
> RCPT TO:<[email protected]>
14250 受信者アドレス受付中
> DATA
16354 Continue
> これはSMTP over 587番ポートのテストです。
> .
19250 大成功
> QUIT
21221 またお会いしましょう。 Yours truly, Mailgun
お分かりのように、上記の通信は送信者と受信者の間で多くの行き来があり、非常に面倒です。 SMTP サーバーへの接続を開き、EHLO コマンドを発行し、認証し、MAIL FROM を設定し、RCPT TO を設定し、DATA コマンドを発行し、データを送信し、ピリオドを打って閉じ、最後にメッセージがキューに入ったことの確認を受け取ります。
これをHTTPsのペイロードと比較してみましょう:
> openssl s_client -connect api.mailgun.net:443
> POST /v2/samples.mailgun.org/messages HTTP/1.1
> Authorization: Basic YXBpOmtleS0zYXg2eG5qcDI5amQ2ZmRzNGdjMzczc2d2anh0ZW9sMA==
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 126
>
> from=test%40samples.mailgun.org& to=recipient%40samples.mailgun.org&subject=Testing&
> text=This+is+a+test+of+HTTP+over+port+443!
9HTTP/1.1 200 OK
ここでは、接続を開始して HTTP POST ペイロードを渡し、API エンドポイントから 200 OK を受け取ります。 一連のコマンドを発行し、各コマンドの後にサーバーからの応答を待つ必要はありません。
SMTP ポートについて覚えておくべきこと
要約すると、パフォーマンスが望まれる場合、MailgunはAPIエンドポイントを利用することをお勧めします。 前後の「チャット」の量ははるかに少ないです。 また、当社のAPI SDKを使えば、接続はとても簡単です。 APIでの接続に興味がない場合は、SMTPエンドポイントでメールを受信することができます。
詳細については、ドキュメントをご覧ください。また、SMTPポートやメールサービスに関するご質問にお答えします。