cmd
を開いてping gmail.com
と入力してみました。表示してくれます
C:\Windows\system32>ping gmail.com
Pinging gmail.com [74.125.235.55] with 32 bytes of data:
Reply from 74.125.235.55: bytes=32 time=6ms TTL=56
Reply from 74.125.235.55: bytes=32 time=6ms TTL=56
Reply from 74.125.235.55: bytes=32 time=6ms TTL=56
Reply from 74.125.235.55: bytes=32 time=215ms TTL=56
Ping statistics for 74.125.235.55:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 6ms, Maximum = 215ms, Average = 58ms
C:\Windows\system32>
私はGmailのアカウントを持っているので、自分でメールをしたのですが、email@gmail.com
ではなくemail@74.125.235.55
を使っています
Response:
自動生成された配送状況通知です
これは警告メッセージのみです
メッセージを送信する必要はありません
下記のお届け先へのお届けが遅れております
xxxxxx@74.125.235.54
メッセージは2日以上再送信されます
一時的な障害の技術的な詳細。受信側のサーバーは、接続するための我々の要求を受け入れませんでした。詳細は http://mail.google.com/support/bin/answer.py?answer=7720 [74.125.235.54 (1): 接続が拒否されました。]
—– オリジナルメッセージ —–
MIME-Version: 1.0 Received: by 10.223.93.196 with SMTP id w4mr3261626fam.44.1309944998035; Wed, 06 Jul 2011 02:36:38 -0700 (PDT) Received: by 10.223.104.194 with HTTP; Wed, 6 Jul 2011 02:36:37 -0700 (PDT) Date.Wed, 6 Jul 2011 17:36:37 +0800 Message-ID: Subject: test From.Joseph To: xxxxxx@74.125.235.54 Content-Type: multipart/alternative; boundary=20cf3054a49348815504a763560c
testtest
メールが届きませんでした。なぜでしょうか?
gmail.com
の部分を74.125.235.55
で代用してはいけないのか?
120 Pacerier 2011-07-06
74.125.235.55はgmail.comのMX(メール交換)ではないからです
gmail.comにpingすると、ping
はAレコードを使ってタスクを実行しますが、メールの送信は(多くの場合)他のサーバを組み込んでいます
DNS レコードを見るには、ツール dig
(Windowsでは: nslookup -q=mx gmail.com
がコメントで言及しています) を使うことができます
Probe:~ trurl$ dig -t ANY gmail.com
; <<>> DiG 9.6.0-APPLE-P2 <<>> -t ANY gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65087
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 9
;; QUESTION SECTION:
;gmail.com. IN ANY
;; ANSWER SECTION:
gmail.com. 3519 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 3519 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 74086 IN NS ns4.google.com.
gmail.com. 3519 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 74086 IN NS ns3.google.com.
gmail.com. 3 IN A 209.85.148.18
gmail.com. 3519 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 3 IN A 209.85.148.83
gmail.com. 3 IN A 209.85.148.17
gmail.com. 74086 IN NS ns1.google.com.
gmail.com. 3 IN A 209.85.148.19
gmail.com. 3519 IN MX 20 alt2.gmail-smtp-in.l.google.com.
gmail.com. 74086 IN NS ns2.google.com.
ご覧のように、gmail.comのメールを扱うサーバーは複数存在し、それぞれのサーバーで優先順位(最後の列の数字)が異なります
そしてさらに進むと、gmail-smtp-in.l.google.com(上のリストの最初のmx
)が別のIPアドレスを指していることがわかります
;; QUESTION SECTION:
;gmail-smtp-in.l.google.com. IN ANY
;; ANSWER SECTION:
gmail-smtp-in.l.google.com. 42 IN A 74.125.39.27
そのため、recipient@[74.125.39.27]
を使う必要があります(これはJdeBPがコメントで述べているように正しい構文です)
しかし、Googleはこれらのメールを受け付けません
Jul 6 13:25:15 lofi postfix/smtp[31213]: C6FXXXXXXX: to=<REMOVED@[74.125.39.27]>,
relay=74.125.39.27[74.125.39.27]:25, delay=3.4, delays=0.16/0.01/0.15/3.1, dsn=5.1.1,
status=bounced(host 74.125.39.27[74.125.39.27] said:
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 REMOVEDg.99
(in reply to RCPT TO command))
これについてさらに考える。Google はこれらのメールを受け付けない、あるいは受け付けられないのは、あなたが誰にメールを送りたいかを知らないからです。74.125.39.27の背後にあるサーバーは、gmail.com
, google.com
, picasa.com
(などなど….) のメールを扱うことができたので、ユーザーを区別する方法がありません
153 trurl 2011-07-06
user@domain.com にメールを送信すると、送信メールサーバは送信先ドメインの DNS MX レコード を使用して、どの IP アドレスがそのドメインでのメールの処理を担当しているかを判断します。これは通常の ping の際に返される IP アドレスと同じではない場合があります
Linux上の’dig’ツールを使用して、gmail.comのMXレコードが以下のサーバのセットに解決していることを確認できます
gmail-smtp-in.l.google.com.
alt1.gmail-smtp-in.l.google.com.
alt2.gmail-smtp-in.l.google.com.
alt3.gmail-smtp-in.l.google.com.
alt4.gmail-smtp-in.l.google.com.
は、全く異なる ping の結果を生成します
$ ping gmail-smtp-in.l.google.com.
PING gmail-smtp-in.l.google.com (209.85.227.27) 56(84) bytes of data.
64 bytes from wy-in-f27.1e100.net (209.85.227.27): icmp_req=1 ttl=50 time=12.8 ms
実際にそのIPアドレスに直接メールを送ることができるかどうかは、メールクライアントやメールサーバに依存します
25 None 2011-07-06
使ってみてください
email@[74.125.235.55]
11 slotishtype 2011-07-06
74.125.235.55
はGmailのゲートウェイではありません。ブラウザのIPアドレスに直接アクセスしても、Gmailのサイトにはアクセスできず、Googleにアクセスしてしまうので、そこが1つのポイントになるかもしれません
7 Sandeep Bansal 2011-07-06
まず、他の方が言っているように、そのIPアドレス自体がDNSのMXレコードとしてリストアップされることはありません(たとえメールサーバの正しいIPアドレスを使ったとしても)ので、そもそもサーバを見つけようとはしません(また、@thedomain
は検索に使われるだけなので、そのIPアドレスに基づいたルーティングもしません)。telnetを使って直接サーバに接続したとしても(専門家が直接メールをテストするのはこの方法です)、以下の理由で失敗します
私がメールシステムを設定するとき、Microsoft Exchange やその他のメールシステムを使うときはいつも、受け入れるドメインを指定しなければなりません。私はいつも @thedomain.com
と入力していますが、これはそのドメインのメールしか受け付けないことを意味します。@74.125.235.55
はドメインではないし、確かに受け入れ可能なドメインリストにもないので、メールサーバに直接接続していたとしても拒否されてしまいます
6 KCotreau 2011-07-06
問題は、実際にメールアドレスが何なのかということです
多くのプロトコルスキームでは、アドレス構文 xxx@example.com
は単に「インターネットホスト example.com
に接続し、(関連するプロトコルの) ユーザ xxx
を指定する」ことを意味しています。SSH、FTP、SCPなどはこのパターンに従います。example.com
は IP アドレスの名前に過ぎません (ping
をするときと同じように解決されます)。電子メールの場合は違います。完全な文字列xxx@example.com
は、ここでは電子メールのアドレスであり、ドメインはアドレスの一部であり、それを送信するために接続するサーバーだけではありません; このサーバーは、”リレー “と呼ばれ、それは、他の回答で説明したように、特別なDNSリクエスト(MXレコード)によって、そのホストの部分から、取得されますが、心に留めておいてください
example.com
(A
レコード) の「通常の」IPアドレスと一致するかしないかのどちらかかもしれませんクライアントがリレーを発見してそれに接続すると、まだ完全なメールアドレスを伝えなければなりません。(同じリレーで異なるドメインのメールを処理することができます)
ちなみに、2つ目のポイント(最初のポイントではありませんが)はHTTPにも当てはまり、1.1: ドメインはホストのIPアドレスを解決するために使われますが、リソースを指定するためにも使われます
3 leonbloy 2011-07-06
宛先のメールサーバは、@
の後に続く名前も含めて、アドレス全体を見ていることを覚えておいてください。Gmailメールサーバは、@gmail.com
で終わるメッセージのみをルーティングし、それ以外のアドレス[1]はすべて破棄または拒否します
GmailのメールサーバのIPアドレスは74.125.45.27
です。しかし、tyler@gmail.com
というアドレスはtyler@74.125.45.27
とは違います。Gmailは「tyler@gmail.com の名前は知っているが、tyler@74.125.45.27 という名前は聞いたことがない」と言って、2つ目のアドレスには配信できないと判断してしまいます
[1] そうですね、正確にはそうではないことはわかっていますし、そうですね、Google Appsのことも知っています
2 tylerl 2011-07-06