Route 53 で SMTP サーバーの MX レコードを作成したのに、サーバーがメールを受信できないのはなぜですか?
Amazon Route 53 の簡易メール転送プロトコル (SMTP) サーバーのメールエクスチェンジャー (MX) レコードを作成しました。今、私のサーバーはメールを受信できません。
簡単な説明
Route 53 DNS サービスのパブリックホストゾーンを適切に設定しないと、クライアントは SMTP サーバーに接続できません。パブリックホストゾーンを適切に設定するには、次の設定を確認してください。
- パブリックホストゾーンには、適切なリソースレコードセットが格納されます。
- AWS 以外のドメイン名レジストラは、Route 53 パブリックホストゾーンのネームサーバーを指しています。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用しているかどうかを確認してください。
適切なリソースレコードセットを使用していることを確認する
SMTP サーバー用の適切なリソースレコードセットが作成されていることを確認します。詳細については、「Amazon Route 53 リソースレコードを作成または編集するときに指定する値」を参照してください。少なくとも、パブリックホストゾーンには SMTP サーバーの MX レコードが含まれている必要があります。詳細については、「シンプルなレコードに固有の値」を参照してください。
AWS 以外のドメイン名レジストラが Route 53 パブリックホストゾーンのネームサーバーを指していることを確認する
DNS サービスには Route 53 を、ドメイン登録には別のドメイン名レジストラを使用できます。この場合、ドメイン名レジストラは Route 53 パブリックホストゾーンのネームサーバーを参照する必要があります。そのためには、インターネットベースの whois ユーティリティに問い合わせて、次の手順を実行してください。
- ドメイン名のレジストラを検索します。 クエリフィールドにドメイン名を入力し、[ドメイン] オプションを選択して [送信] を選択します。クエリ結果には、ドメイン名レジストラとドメイン名の権限のあるネームサーバーが含まれます。
注: クエリ結果から、Route 53 パブリックホストゾーンに関連付けられているネームサーバー以外のネームサーバーのリストが返されることがあります。この場合、SMTP サーバーの DNS クエリは Route 53 に送信されません。ドメイン名に関連付けられているネームサーバーのリストを更新するには、ドメイン名登録事業者に問い合わせてください。 - ドメイン登録事業者の連絡先情報を検索してください。 クエリフィールドにレジストラの名前を入力し、[レジストラ] オプションを選択して [送信] を選択します。この情報を使用して、ドメインレジストラにお問い合わせください。ドメイン名がそのパブリックホストゾーンでネームサーバーを参照できるように、ドメイン登録事業者にネームサーバーのリストを更新するよう依頼してください。
- **移管元の DNS サービスが、レジストラのネームサーバー上の有効期間 (TTL) の期限が切れる前にリソースレコードセットを削除しないことを確認します。**Route 53 の DNS サービスは、ドメインネームサーバーレコードの TTL 期間が経過するまで、ドメイン名の DNS クエリに応答しません。詳細については、「DNS 設定を変更したが、有効になっていない」を参照してください。
DNS MX レコードセットの問題を確認する
1. ドメインの MX レコードが存在することを確認するには、以下のコマンドを実行します。
Linux または macOS
dig DOMAIN_NAME MX
これにより、次の dig の例のような出力が返されます。
$ dig amazon.com MX ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> amazon.com MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61726 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;amazon.com. IN MX ;; ANSWER SECTION: amazon.com. 300 IN MX 5 amazon-smtp.amazon.com. ;; Query time: 1 msec ;; SERVER: 10.10.0.2#53(10.10.0.2) ;; WHEN: Wed Apr 14 06:21:43 UTC 2021 ;; MSG SIZE rcvd: 67
Windows
nslookup -type=MX DOMAIN_NAME
これにより、次の nslookup の例のような出力が返されます。
$ nslookup -type=MX amazon.com Server: 10.10.0.2 Address: 10.10.0.2#53 Non-authoritative answer: amazon.com mail exchanger = 5 amazon-smtp.amazon.com.
2. MX レコードのホスト名を解決できることを確認するには、以下のコマンドを実行します。
Linux または macOS
dig MX_RECORD
これにより、次の dig の例のような出力が返されます。
$ dig amazon-smtp.amazon.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> amazon-smtp.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64180 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;amazon-smtp.amazon.com. IN A ;; ANSWER SECTION: amazon-smtp.amazon.com. 27 IN A 52.94.124.7 ;; Query time: 1 msec ;; SERVER: 10.10.0.2#53(10.10.0.2) ;; WHEN: Wed Apr 14 06:41:18 UTC 2021 ;; MSG SIZE rcvd: 67
Windows
nslookup MX_RECORD
これにより、次の nslookup の例のような出力が返されます。
$ nslookup amazon-smtp.amazon.com Server: 10.10.0.2 Address: 10.10.0.2#53 Non-authoritative answer: Name: amazon-smtp.amazon.com Address: 52.119.213.154
注: DNS プロバイダーによっては、MX レコードセット名の前にアットマーク (@) を付ける必要があります。また、プロバイダーによっては、ルートドメインの MX レコードセットを作成するときに、「@」という名前の MX レコードセットを作成する必要がある場合があります。ただし、Route 53 MX レコードセット名の先頭に「@」やその他の記号を付けないでください。Route 53 のルートドメインの MX レコードセットを作成するには、レコードセット名を空白のままにします。次に、Route 53 MX レコードセットの残りのフィールドに適切な値を指定します。
E メールの送受信のテスト
メールサーバーに接続し、SMTP コマンドを使用してメールを送受信する機能をテストします。
1. 次のコマンドを入力して、Enter キーを押します。プレースホルダーの値は、必ずメールサーバー名または IP アドレスとポート番号に置き換えてください。
telnet MAIL_SERVER_NAME_OR_IP MAIL_SERVER_PORT_NUMBER
注: このコマンドで入力ミスをした場合は、Enter キーを押します。この場合、Backspace キーまたは Delete キーを押しても機能しません。Enter キーを押した後、コマンドを再試行してください。場合によっては、Telnet セッションを閉じて再接続する必要があります。
2. 次のコマンドを入力して、Enter キーを押します。プレースホルダーの値は必ずメールサーバーのドメイン名に置き換えてください。
EHLO YOUR_MAIL_SERVER_FULLY_QUALIFIED_DOMAIN_NAME
3. 次のコマンドを入力して、Enter キーを押します。プレースホルダーの値は必ずメールアドレスに置き換えてください。
mail from: your_name@yourdomainname
サーバーは 250 OK と応答します。
4. 次のコマンドを入力して、Enter キーを押します。プレースホルダーの値は、必ず受信者のメールアドレスに置き換えてください。
rcpt to: recipient@yourdomainname
注: 送信者と受信者は同じ電子メールアドレスを持つことができます。
サーバーは 250 承認済みと応答します。
重要: サーバーが送信者や受信者などの情報を検証できる場合、メッセージは受理されたことが確認されます。
5. 次のコマンドを入力して、Enterキーを押します。
data
6. 次のコマンドを入力して、Enterキーを押します。
Subject: SPECIFY_SUBJECT_HERE
7. 次のコマンドを入力して、Enterキーを押します。
SPECIFY_MESSAGE_HERE
8. 次のコマンドを入力して、Enterキーを押します。
.
サーバーはメッセージの配信を受け入れ、メールを送信したことを示す 250 OK と応答します。
9. MX レコードが正しく設定されていることを確認しても SMTP サーバーがメールを受信できない場合は、メールサービスプロバイダーに連絡してください。
関連するコンテンツ
- 質問済み 2年前lg...
- 質問済み 23日前lg...
- AWS公式更新しました 3年前