これから説明する内容の詳細を理解していただくために、SMTPとは何か、SMTPで何をテストできるのかを定義しましょう。 電子メールがどのようにして目的地に届くのか、誰もが疑問に思っていることでしょう。 SMTPはそれを完全にカバーしており、実際の手紙を封筒に入れて届けるのと同じようなメカニズムを実装しています。 SMTPサーバー、あるいはSMTPを実行しているコンピュータは、インターネットのメールキャリアの役割を果たしています。 メッセージはこのサーバーに直接送られ、サーバーはメールを受信者に届けます。
あるSMTPサーバーにtelnetするだけで、さまざまなことがテストできます。
How to test SMTP server with a manual telnet session? 次に、ログインするメールサーバーを探す必要があります。 それを進めるためには、指定されたドメインのDNS MXレコードが必要になります。 以下のコマンドに似たものを使うことができます:
Windows:
nslookup -type=mx mailtrap.io
Linux:
nslookup -type=mx mailtrap.ioNon-authoritative answer:Server:192.168.0.1Address:192.168.0.1#53Non-authoritative answer:mailtrap.iomail exchanger = 10 aspmx2.googlemail.com.mailtrap.iomail exchanger = 10 aspmx3.googlemail.com.mailtrap.iomail exchanger = 1 aspmx.l.google.com.mailtrap.iomail exchanger = 5 alt1.aspmx.l.google.com.mailtrap.iomail exchanger = 5 alt2.aspmx.l.google.com.
使用する予定のIPについては、DNS PTRが必要です。 これには、インターネットが私たちを見ているIPアドレスから始める必要があります。
IP アドレスがわかったら、次のコマンドを実行します。ただし、T.T.T.T は IP アドレスを意味します。
Windows:
nslookup -type=ptr T.T.T.T
Linux:
nslookup -type=ptr A.B.C.DServer:192.168.0.1Address:192.168.0.1#53Non-authoritative answer:212.235.118.46.in-addr.arpaname = SOL-FTTB.212.235.118.46.sovam.net.ua.
これで、railsware.com の MX レコードと、使用する IP の PTR という 2 つの基本的な要件が揃いました。 この時点で、SMTPサーバーにログインすることができます。
telnet mail.railsware.com 25
以下のコードのようなものが表示されます。
Trying 45.55.56.249...Connected to mail.railsware.com (45.55.56.249).Escape character is '^]'.220 mail.railsware.com (PowerMTA(TM) v4.0) ESMTP service readyThe first command to issue to the mail server is going to be EHLO or HELO, which is a basic greeting that initiates the communication between the SMTP server and the telnet client.EHLO server.example.com
次のようなコードが表示されます。
250-mail.railsware.com says hello250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250-8BITMIME250-XACK250-XMRG250-SIZE 54525952250-VERP250 DSN
次に問題となるのはMAIL FROMコマンドです。 このコマンドは、バウンスメールを配信するアドレスを定義します。
MAIL FROM: <[email protected]>250 2.1.0 MAIL ok
MAIL FROMコマンドを送信したので、RCPT TOコマンドを送信します。 RCPT TOコマンドは、メッセージを誰に送るかを決定します。
RCPT TO: <[email protected]>250 2.1.5 <[email protected]> okBefore starting the body of the message, you should run the DATA command. This command "explains” that all the other content, aside from previous, is the body of the message, including the headers.DATA354 send message
mail.rsilsware.comをはじめとするメールサーバーの中には、PIPELININGをサポートしているものがあります。 これは、SMTPメールサーバが、EHLOコマンド以降の他のコマンドに応答する前に、DATAコマンドが発行されるまで待つことを意味します。
Try Mailtrap for Free
Online services for testing SMTP servers
まず始めに、SMTPサーバーのアドレスを定義する必要があります。
SMTP チェックサービスには、サーバーの DNS ブラックリスト ステータスの確認、MX レコードの確認、中継設定、PTR レコードの確認、電子メール アドレスの確認など、いくつかの段階があります。
MX Toolbox
https://mxtoolbox.com/diagnostic.aspx
MX Toolboxは、以下のような簡単なテストを行う無料のサービスです。
- SMTP Reverse DNS Mismatch
- SMTP Valid Hostname
- SMTP Banner Check
- SMTP TLS
- SMTP Connection Time
- SMTP Open Relay
- SMTP Transaction Time
ただし、ポートの定義やパスワードの入力などはできません。
Wormly
https://www.wormly.com/test_smtp_server
Wormly は SMTP サーバーをチェックするための無料のトライアルを提供していますが、ポートやパスワードを定義することはできず、また、安全な接続も利用できません。
SMTPer
http://smtper.nanogenesis.fr/
SMTPerは、ポートを定義することができ、ユーザーに安全な接続と認証を提供する最も便利なソリューションです。
test-smtp.com
http://www.test-smtp.com/
Test SMTP は、単に SMTP サーバーにリクエストを送信して中継テストを実行します。
testsmtp.tcsoftware.net
http://testsmtp.tcsoftware.net/
Check SMTP は、プロセスの特定の部分では機能しますが、適切な検査には十分ではありません。 安全な接続を提供しません。
Check SMTPは、以下のテストを実行します。
- サーバーのDNSブラックリストの状態を確認する
- MXレコードを確認する
- リレーの構成
- PTRレコード(逆引き)
- 電子メールアドレスを確認する
追加リソース
インフラストラクチャのための電子メール送信のセットアップに関するヘルプが必要ですか? ここであなたのガイドを見つけてください。
- PHPでメールを送信する
- PHPMailerでメールを送信する
- Laravelでメールを送信する
- Symfonyでメールを送信する
- NodeJSでメールを送信する
- Nodemailerでメールを送信する。 Nodemailer
- Sending Emails with Java
- Sending Emails with Python
- Sending Emails with Django
- Sending Emails with Go
- Sending Emails with Ruby
- Sending Emails with ASP .Net C#
- Angularアプリからメールを送信する
- Reactアプリからメールを送信する
- React Nativeアプリからメールを送信する
この記事を楽しんでいただけましたら、ぜひシェアして広めてください。 本当に感謝しています。