Tài liệu: SMTP

Tài liệu
Phạm Nguyễn Bảo Nguyên

Tóm tắt nội dung

Exchange Server - SMTP
SMTP

Nội dung

Như chúng ta đã có rất nhiều giao thức kéo Mail về như HTTP, POP3, IMAP, MAPI... nhưng hầu hết trong này lại sử dụng giao thức SMTP để gởi mail đi

Trong bài này chúng ta sẽ tìm hiểu riêng về SMTP để hiểu cơ chế gởi Mail đi của một máy tính như thế nào. Vì vậy trong mô hình này tôi cần 2 máy tính để gởi và nhận Mail với nhau trong đó:

- Máy thứ 1 đã cài EX và có domain là gccom.net

- Máy thứ 2 đã cài EX và có domain là kythuatvien.com

Cấu hình IP các máy như sau:

Để các máy có thể gởi mail cho nhau tại DNS của từng máy tôi phải tạo các MX Record và Alias mail (Xem lại bài DNS)

Bây giờ từ máy PC02 tôi dùng Command DOS để gởi mail đến máy PC01. Tại dấu nhắc DOS nhập

Telnet 192.168.1.1 25

Nhập tiếp dòng lệnh

helo 192.168.1.1mail from:rcpt to:Datafrom: abc@abc.comto: gccom1@gccom.net

Subject: Mail 17Goi Mail 17 cho gccom1.quit

Màn hình thông báo gởi Mail hoàn tất. Tất nhiên để làm được việc này bạn phải Enable Service Microsoft Exchange POP3 trong Services của PC01 lên (Xem lại bài Internet Protocol)

Tại máy PC01 check mail của gccom1 thấy nhận được Mail. Tuy nhiên ta nhận thấy rằng người dùng có thể hoàn toàn giả mạo Email để gởi đến bất cứ ai, trong bài này chúng ta sẽ không đề cập đến vấn đề này và tôi sẽ nói lại trong phần Anti Spam ở bài sau.

Như vậy kết hợp với bài Internet Protocol ta thấy việc gởi và nhận Mail trong nội bộ không có vấn đề gì. Bây giờ ta thử tiến hành gởi mail ra ngoài Internet xem sao

Tất nhiên để gởi được Mail ra ngoài thì ngay tại Outgoing mail (SMTP) ta phải nhập địa chỉ hoặc IP của Server Mail mà ta muốn gởi đến. Trong bài này giả sử tôi đã có IP của Server Yahoo Mail209.191.118.103 vì vậy tại Account Properties của OE tôi nhập:

Incoming mail (POP3): vì tôi không cần thiết phải kéo mail về nên tại đây tôi nhập đại IP nào đó ví dụ 1.2.3.4

Outgoing mail (SMTP): 209.191.118.103

Gởi thử một mail đến vitinhgocong@yahoo.com thấy gởi thành công

Tuy nhiên nếu tôi gởi mail đến các địa chỉ Mail khác Yahoo ví dụ như Gmail thì lập tức bị lỗi, lý do IP 209.191.118.103 chính là IP Mail Server của Yahoo vì vậy khi mail ra ngoài sẽ không hiểu Mail Server của Gmail có IP là gì nên nó phản hồi lỗi ngay.

Trở lại màn hình Account Properties nhập lại giá trị:

Outgoing mail (SMTP): 192.168.1.1

Nhận thấy lúc này ta có thể gởi Email đến mọi Domain tốt. Lý do:

Khi Email được gởi ra ngoài nó sẽ đi theo giao thức SMTP và nó tìm máy nào có IP là 192.168.1.1 mà gởi đến. Tuy nhiên do từ trước chúng ta đã cài DNS lên chính máy này nên đến đây DNS sẽ phân giải và hiểu các Server Mail của Yahoo, Gmail... ở đâu và lập tức gởi  Email của chúng ta đến các Mail Server này.

Nhưng nếu trong hệ thống của chúng ta đã cài Exchange Server rồi thì cho dù phân giải tên miền thành công nhưng Email này vẫn chưa ra được vì mặc định Exchange không cho gởi Mail ra ngoài. Vì vậy tại Organization Configuration chọn Hub Transport chọn tiếp Tab Send Connectors nhấp phải vào cùng trống chọn New Send Connector

Tạo một Connector mới đặt tên là To Internet chẳng hạn

Để gởi được mọi domain tại Address space bạn chỉ add một dấu * duy nhất mà thôi

Chọn Use domain name system (DNS) "MX" records to route mail automatically

Giữ nguyên giá trị mặc định nhấp Next

Màn hình sau khi hoàn tất

Bây gi&# 7901; gởi thử Email cho các Domain khác nhau thấy rất tốt.

Bây giờ ta sẽ tìm hiểu đến một cách thức gởi mail khác đó là Exchange Relay Mail to Exchange

Trong các hệ thống mạng lớn nhất là đối với các công ty có nhiều chi nhánh trên nhiều quốc gia vì một lý do nào đó (hoặc để hệ thống luôn được thông suốt dù có sự cố từ ISP hoặc vì tính riêng tư) mà người ta thuê hẳn một đường Cable riêng để nối các Exchange lại với nhau.

Như vậy thông thường Email từ các máy thuộc mạng thứ 1 khi gởi ra ngoài sẽ được gởi đến máy EX và từ đó gởi ra ngoài Internet. Tuy nhiên khi có sự cố từ nhà cung cấp dịch vụ ISP thì toàn bộ hệ thống sẽ không thể gởi mail ra vào được nữa.

Khi đó vì có đường Cable riêng nên từ mạng thứ 1 máy EX sẽ gởi các Email này theo đường Line riêng của mình đến một máy EX khác thuộc hệ thống của nó nằm tại một vị trí địa lý hoàn toàn khác và không bị ảnh hưởng bởi sự cố của ISP. Từ đó máy EX của mạng thứ 2 sẽ nhận các Email này và chuyển tiếp chúng ra Internet

Như vậy đến đây bạn có thể hình dung được vấn đề tương tự như DHCP Relay Agent vậy...

Giả sử tôi muốn EX từ domain gccom.net sẽ Relay Email đến EX của domain kythuatvien.com

Nên để 2 máy hiểu domain của nhau ta phải Forwarders máy này sang Domain máy kia và ngược lại (Xem lại bài DNS)

Và phải đảm bảo rằng phải tồn tại các MX record và Alias mail

Tại máy PC02 (EX của domain kythuatvien.com) tôi tạo một Mailbox UserRelayAccountPassword123

Gán cho Account vừa tạo quyền Relay bằng cách chạy Exchange Power Shell lên nhập

Add-ADPermission -Identity "Default PC01" -User RelayAccount -ExtendedRights ms-exch-smtp-accept-any-sender

Tại domain gccom.net bạn vào Hub Transport của Organization Configuration chọn tiếp Tab Send Connectors sau đó nhấp phải chọn New Send Connectors

Giả sử tôi chỉ muốn Relay các Email gởi đến Yahoo mà thôi nên tôi sẽ tạo một ConnectorRelayYahoo

Tại Address space bạn Add Domain là *.yahoo.com và chọn Include all subdomains

Trong Network settings bạn chọn Route mail through the following smart hosts để chị định máy Relay

Bạn nhập chính xác IP máy Exchange của domain kythuatvien.com hoặc nhập FQDN của máy Exchange đó

Chọn Basic Authentication trong cửa sổ Configure smart host authentication settings

Và nhập chính xác User/Pass của Account RelayAccount vừa tạo lúc nãy tại kythuatvien.com vào

Màn hình sau khi hoàn tất

Tiếp tục vào Services Restart dịch vụ Microsoft Exchange Transport lại

Bây giờ tại gccom.net bạn gởi một mail ra Yahoo

Bật EX của kythuatvien.com lên chọn Queue Viewer trong Toolbox lên

Sẽ thấy có các Email đang chờ gởi ra Yahoo do EX của gccom.net gởi tới.




Nguồn: voer.edu.vn/m/smtp/a446c599


Chưa có phản hồi
Bạn vui lòng Đăng nhập để bình luận