2011-12-27 71 views
6

Tôi đang cố gắng tìm máy chủ thư gmail.com bằng lệnh dig và xác minh kết quả được trả về bằng lệnh dig bằng telnet.Giải quyết máy chủ thư gmail.com

$ dig gmail.com MX 

; <<>> DiG 9.7.3 <<>> gmail.com MX 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54145 
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 

;; QUESTION SECTION: 
;gmail.com.   IN MX 

;; ANSWER SECTION: 
gmail.com.  800 IN MX 10 alt1.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 20 alt2.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 30 alt3.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 40 alt4.gmail-smtp-in.l.google.com. 
gmail.com.  800 IN MX 5 gmail-smtp-in.l.google.com. 

;; Query time: 14 msec 
;; SERVER: 192.168.1.1#53(192.168.1.1) 
;; WHEN: Tue Dec 27 02:09:50 2011 
;; MSG SIZE rcvd: 150 

Lệnh đào nói "alt1.gmail-smtp-in.l.google.com" là một trong các máy chủ thư. Các cổng smtp 25 hoặc 587 không được mở (được xác minh bằng telnet) cho liên kết "alt1.gmail-smtp-in.1.google.com". Tuy nhiên, liên kết http://support.google.com/mail/bin/answer.py?hl=en&answer=13287 nói rằng smtp.gmail.com là máy chủ thư cho gmail.com và cổng 587 mở cho nó. Tại sao đào là cung cấp cho các máy chủ email sai hoặc nơi mà sự hiểu biết của tôi trong việc đọc đầu ra đào là sai.

Trả lời

15

Lý thuyết chung

Nói chung, một máy chủ SMTP có hai chức năng khác nhau mà thường được lồng việc: nộp thư đi, và nhận thư từ các mạng khác. Hai hàm này được thực hiện bằng cách sử dụng cùng một giao thức SMTP. Thông thường hai chức năng này được thực hiện bởi cùng một máy, và trong lịch sử chúng thậm chí có thể được thực hiện trên cùng một cổng. Vì vậy, thật dễ dàng để thấy lý do tại sao mọi người conflate hai chức năng này.

Mặc dù hai chức năng này vẫn là giao thức SMTP, nhưng chúng càng trở nên kém hiệu quả hơn khi chúng được thực hiện trên cùng một cổng (vì người quản trị hệ thống ngăn chặn khách hàng của họ gửi spam bằng cách chặn lưu lượng cổng 25). Thường thì trình SMTP sử dụng mã hóa SSL trong những ngày này, trong khi vận chuyển thư giữa hai mạng khác nhau vẫn được thực hiện bằng văn bản thuần túy. Với sự phức tạp của mạng lưới của Google, nó sẽ không làm tôi ngạc nhiên nếu hai chức năng này được thực hiện trên các máy khác nhau. (Tuyên bố từ chối trách nhiệm: Tôi làm việc cho Google, nhưng tôi không có kiến ​​thức bên trong về hoạt động của GMail.)

  1. Gửi thư đi. Khi bạn gửi email từ Gmail, đặc biệt khi bạn định cấu hình ứng dụng email như Evolution để gửi từ tài khoản gmail của mình, bạn phải định cấu hình máy chủ SMTP để sử dụng để gửi thư của mình. Ứng dụng email khách của bạn kết nối trực tiếp với máy chủ SMTP này và máy chủ SMTP chịu trách nhiệm gửi thư đến đúng nơi khác trên internet. Điều này thường được định cấu hình bằng cách sử dụng một cổng đặc biệt và yêu cầu thông tin đăng nhập để chỉ những người dùng được ủy quyền mới có thể gửi email. Đây là hàm mà liên kết hỗ trợ ở trên đang xử lý. Bạn định cấu hình ứng dụng email khách của mình để sử dụng tên miền smtp.gmail.com trên cổng 587 và tôi cho rằng ứng dụng email của bạn tìm thấy máy chủ này bằng cách sử dụng bản ghi DNS A để tra cứu tên miền thông thường.

  2. Nhận email từ các mạng khác. Máy chủ SMTP chuyển tiếp thư của bạn tới mạng khác sẽ tra cứu bản ghi MX cho gmail.com (trong trường hợp của bạn, việc tìm địa điểm gửi thư là alt1.gmail-smtp-in.l.google.com) và gửi thư đến cổng 25 trên máy chủ đó. Đây là những gì bạn tra cứu trong DIG, và được kiểm tra bằng telnet.

    Bây giờ tại sao bạn không nhìn thấy cổng của số 25 khi bạn thử kết nối internet từ kết nối internet của người tiêu dùng? Câu trả lời là để ngăn chặn thư rác gửi đi, ISP của bạn chặn lưu lượng gửi đi trên cổng 25. Do đó, bạn không thể gửi bất kỳ thứ gì đến cổng gmail.com 25 mà không cần qua máy chủ SMTP của ISP hoặc một số máy chủ SMTP khác yêu cầu đăng nhập và nhận các yêu cầu trên cổng 587.

Những gì bạn đã cố gắng làm.

Vì vậy, bạn đang cố gắng thực hiện chức năng # 2. Bạn đã thực hiện tra cứu MX cho gmail.com chính mình và nhận thấy rằng nó tương ứng với máy chủ alt1.gmail-smtp-in.l.google.com. Sau đó, bạn đã thử telnetting đến cổng 587 trên alt1.gmail-smtp-in.l.google.com.Điều đó không có tác dụng vì alt1.gmail-smtp-in.l.google.com không lắng nghe trên cổng đó (nó chỉ cần nghe trên cổng 25 để thực hiện hàm số 2). Sau đó, bạn đã cố gắng telnetting đến cổng 25 trên alt1.gmail-smtp-in.l.google.com. Điều đó không hiệu quả vì ISP của bạn chặn các kết nối gửi đi trên cổng 25.

Những gì bạn cần làm để gửi email đến gmail.com là tìm máy chủ thực hiện chức năng # 1 và gửi email của bạn qua đó. Ngoài ra, hãy tìm một ISP không ngại là thiên đường thư rác và không chặn lưu lượng gửi đi trên cổng 25. (Thực tế, xin đừng.)

+0

Tôi nghĩ rằng bạn đã hiểu nhầm điều máy chủ xác minh cổng của tôi (có thể là tôi nên đã đề cập một cách rõ ràng tên máy chủ mà tôi đã thử nghiệm các cổng mở). Tôi đã không kiểm tra các cổng mở trong "gmail.com". Tôi đã kiểm tra các cổng "alt1.gmail-smtp-in.l.google.com" 25 và 587, được báo cáo là máy chủ thư của gmail.com bằng cách khai thác. Tôi không nghĩ đến việc gửi email từ gmail.com. Giả sử rằng tôi phải viết một ứng dụng thư khách phải gửi email đến "[email protected]". Điều đầu tiên tôi phải tìm là máy chủ thư cho gmail.com là gì. Làm thế nào để tìm thấy điều đó. –

+0

@Talespin_Kit: Tôi đã cập nhật câu trả lời của mình ngay bây giờ. cái đó có giúp ích không? –

+0

Cảm ơn bạn đã cập nhật câu trả lời. Tôi có vài truy vấn liên quan đến việc chặn cổng bởi ISP. Tôi có thể kết nối với cổng 25 của "smtp.gmail.com", nhưng tôi không thể kết nối với cổng 25 của "alt1.gmail-smtp-in.l.google.com". Vì vậy, tại sao ISP chặn cổng 25 cho "alt1.gmail-smtp-in.l.google.com" nhưng không chặn "smtp.gmail.com". Có phương pháp nào để tìm hiểu xem ISP có chặn cổng không (tôi nghi ngờ liệu cổng 25 của "alt1.gmail-smtp-in.l.google.com" có thực sự mở) không. Một truy vấn khác là, tại sao thông tin về "smtp.gmail.com" không có trong bản ghi MX. –

Các vấn đề liên quan