Sau đó phía SMTP gửi lại gửi một RCPT command cho biết là mail này gửi đến cho ai, nếu phía SMTP nhận chấp nhận mail này cho người nhận đó thì nó reply lại là OK, nếu không nó sẽ reply
Trang 1SMTP(SIMPLE MAIL TRANSFER PROTOCOL)
Nhóm thực hiện:
Dương Kim Anh Hoàng Thế Long Nguyễn Văn Sang
Trang 2 Một đặc trưng quan trọng của SMTP là khả năng
Relay mail qua nhiều môi trường dịch vụ truyền tải Một dịch vụ truyền tải cung cấp một môi trường
Trang 31.Tổng Quan về SMTP (tiếp)
Một IPCE có thể bao gồm một mạng, một số
mạng, hay một hệ thống mạng con Có thể hiểu IPCE là môi trường cho phép một tiến trình có thể giao tiếp qua lại trực tiếp với một tiến trình khác.
Mail là một ứng dụng sử dụng việc giao tiếp
giữa các tiến trình.
Mail có thể được truyền tiếp (relay) qua nhiều Host trên nhiều hệ thống truyền tải khác nhau
Trang 52.MÔ HÌNH SMTP(tiếp)
Trang 62.MÔ HÌNH SMTP(tiếp)
Một khi kênh truyền đã được thiết lập, phía SMTP gửi sẽ gửi một MAIL command cho biết mail này là do ai gửi Nếu phía SMTP nhận chấp nhận mail này nó sẽ reply lại
là OK Sau đó phía SMTP gửi lại gửi một RCPT
command cho biết là mail này gửi đến cho ai, nếu phía
SMTP nhận chấp nhận mail này cho người nhận đó thì nó reply lại là OK, nếu không nó sẽ reply lại là mail này bị loại bỏ Nếu phía SMTP nhận reply là OK thì phía SMTP gửi sẽ gửi dữ liệu mail tới phía nhận và kết thúc bằng một
Trang 72.MÔ HÌNH SMTP(tiếp)
SMTP cung cấp hai cách khác nhau để gửi mail:
• Truyền thẳng khi host phía gửi và host phía nhận
được kết nối tới cùng một dịch vụ truyền tải
• Thông qua các máy chủ SMTP khi host phía gửi và host phía nhận không được kết nối tới cùng một
dịch vụ truyền tải
Trang 83.CÁC CHỨC NĂNG SMTP
SMTP có các chức năng sau :
• VERIFYING AND EXPANDING
• SENDING AND MAILING
DOMAINS
Trang 93.1 MAIL
Cần thực hiện 3 bước trong một phiên giao
dịch Mail trong SMTP:
Bước đầu tiên trong thủ tục này là MAIL
command, cú pháp của nó như sau :
Trang 10là OK, nếu nó không nhận ra được địa chỉ hòm thư
nhận thì sẽ reply lại là có lỗi sảy ra.
Bước thứ ba trong thủ tục này là DATA command, cú pháp của nó như sau :
DATA <CRLF>
Trang 113.1 MAIL(tiếp)
từ đây phía SMTP gửi có thể gửi những đoạn text đến phía nhận Khi kết thúc việc gửi text, phía SMTP nhận sẽ reply lại là OK, nếu có lỗi sảy ra trong quá trình gửi text (chẳng hạn như địa chỉ hòm thư nhận là không tồn tại), thì
SMTP nhận sẽ trả về một thông báo lỗi
Trang 13R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah
S: etc etc etc.
S: <CRLF>.<CRLF>
R: 250 OK
Trang 14 Thông qua ví dụ ta thấy Jones và Brown có
hòm thư tại host Beta.ARPA nên mail đã được chấp nhận cho hai người này,còn Green không
có hòm thư tại host này nên đã có một thông
báo lỗi sảy ra từ phía SMTP nhận
Trang 15 Khi đó có hai loại mã trả về tương ứng với hai trường hợp sau:
Trang 16 Phía SMTP nhận chỉ ra rằng địa chỉ hộp thư đích nằm trên một host khác vì vậy kèm theo đó là địa chỉ mà SMTP-Server sẽ dùng để chuyển tiếp mail này đến
địa chỉ đích mong muốn.
Phía SMTP chỉ ra rằng địa chỉ hộp thư đích nằm
trên một host khác vì vậy kèm theo đó là địa chỉ
mà SMTP-Server đưa ra nhằm trợ giúp cho phía
Trang 183.3.XÁC NHẬN VÀ MỞ RỘNG
Một số tính năng phụ trợ, hay các câu lệnh cho phép xác nhận người sử dụng và mở rộng danh sách thư (Mailing List).
Đó là các câu lệnh VRFY và EXPN với tham số như username, fullname và mailbox
VRFY command thường không được dùng để
mở rộng danh sách thư, nếu sử dụng có thể sẽ
Trang 193.3 XÁC NHẬN VÀ MỞ RỘNG(tiếp)
Tương tự EXPN command thường không được
sử dụng để kiểm tra user name, nếu sử dụng có thể gặp phải một thông báo lỗi :
550 That is a user name, not a mailing list
Trang 213.3 XÁC NHẬN VÀ MỞ RỘNG(tiếp)
Ví dụ :
S: EXPN Example-People
R: 250-Jon Postel <Postel@USC-ISIF.ARPA>
R: 250-Fred Fonebone <Fonebone@USC-ISIQ.ARPA>
R: 250-Sam Q Smith <SQSmith@USC-ISIQ.ARPA>
R: 250-Quincy Smith
<@USC-ISIF.ARPA:Q-Smith@ISI-VAXA.ARPA>
R: 250-<joe@foo-unix.ARPA>
R: 250 <xyz@bar-unix.ARPA>
Or
Trang 223.4.SENDING AND MAILING
Mục đích chính của SMTP là chuyển mail đến hộp thư của người sử dụng, tuy vậy một dịch vụ tương
tự được cung cấp bởi một số host là chuyển thư
trực tiếp đến thiết bị đầu cuối của người dùng.
Trường hợp chuyển thư đến hộp thư đầu gọi là
“mailing” và trường hợp chuyển thư đến thiết bị
đầu cuối gọi là “sending”.
Ở một số host thì sending và mailing là hoàn toàn
Trang 233.4.SENDING AND MAILING(tiếp)
Có 3 câu lệnh thực hiện các chức năng này
thường được dùng thay lệnh MAIL, yêu cầu phía nhận thực hiện các công việc chi tiết:
1. SEND <SP> FROM:<reverse-path> <CRLF> quá trình gửi mail sẽ thành công nếu như mail
gửi được đến thiết bị đầu cuối của người sử dụng, nếu không một thông báo lỗi sẽ được trả lại
Trang 243.4.SENDING AND MAILING(tiếp)
2. SOML <SP> FROM:<reverse-path>
<CRLF>
sau lệnh này, nếu người nhận được kích hoạt
trên host thì mail sẽ được gửi tới thiết bị đầu cuối, nếu không thì mail sẽ được gửi đến hòm thư của người nhận Giao dịch mail sẽ thành
Trang 253.4.SENDING AND MAILING(tiếp)
3. SAML <SP> FROM:<reverse-path>
<CRLF>
sau lệnh này, nếu người nhận được kích hoạt
trên host của họ thì mail sẽ được gửi đến thiết
bị đầu cuối Trong mọi trường hợp thì dữ liệu mail luôn được nhập vào hòm thư của người nhận Giao dịch mail sẽ kết thúc và thành
công nếu như mail được gửi đến thiết bị đầu
Trang 263.5.ĐÓNG MỞ GIAO DỊCH
Tại thời điểm kênh truyền được mở, có một
cuộc trao đổi để đảm bảo rằng các host đang giao tiếp với nhau.
Khi đó hai câu lệnh sau đây được sử dụng để
mở và đóng giao dịch trong một kênh truyền :
HELO <SP> <domain> <CRLF>
QUIT <CRLF>
Trang 29 Các thành phần của đường dẫn chuyển tiếp
”forward-path” được chuyển tới
“reserse-path” khi bản tin được relay từ SMTP-server này sang cái khác
Qua mỗi lần Relay trường địa chỉ của bản tin cần chuyển được thay đổi bởi các host sao cho bản tin đến được đích cuối cùng chính xác cho
dù phải qua nhiều địa chỉ trung gian
Trang 31 DOMAINS : là cách sử dụng các tên vùng, tên miền
để chuyển đổi từ không gian địa chỉ tổng thể gồm
các chuỗi kí tự đơn giản sang một không gian địa
chỉ có cấu trúc được phân cấp
Tên các host được thay thế bởi các tên miền và các định danh host bao gồm các chuỗi kí tự được sắp
xếp nhằm dễ dàng tổ chức, phân lọai từ diện chung
Trang 323.8.TRÁO ĐỔI VAI TRÒ
Với câu lệnh TURN ta có thể tráo đổi vai trò của
hai ứng dụng tham gia giao tiếp trên một kênh
truyền.
Nó thường được dùng trong trường hợp kênh
truyền là TCP( hướng nối kết ).
Rất hữu dụng khi giá thành để thiết lập một kênh truyền là tương đối cao Vd: dùng để chuyển mail trên hệ thống điện thoại chuyển mạch công cộng
Trang 334.ĐẶC TẢ SMTP
4.1.1 NGỮ NGHĨA CÂU LỆNH
4.1.2 CÚ PHÁP CÂU LỆNH
Trang 344.1.1.NGỮ NGHĨA
Các câu lệnh dùng để giao tiếp trong SMTP là các chuỗi kí tự ASCII rút gọn từ các từ thường dùng Gồm có:
HELLO (HELO)
MAIL (MAIL)
RECIPIENT (RCPT)
DATA (DATA)
Trang 364.1.2.CÚ PHÁP
SMTP không phân biệt chứ hoa chứ thường
khi viết lệnh, tuy vậy ta không nên dùng lẫn lộn các lọai kí tự nhằm tránh các lỗi không đáng
có.
Các tham số trong từng câu lệnh xin tra cứu chi tiết trong tài liệu rfc821
Trang 374.2.MÃ HỒI ĐÁP
21 loại mã khác nhau tương ứng với các hồi
đáp phía SMTP-Server trong các trường hợp giao tiếp.
Có thể phân lọai theo nhóm lỗi hay số thứ tự các mã.
Để biết thêm chi tiết xin tra cứu cụ thể rfc821 trang 22,23.
Trang 384.3.THỨ TỰ CÁC CÂU LỆNH
VÀ HỒI ĐÁP.
Giao tiếp giữa phía gửi và phía nhận trong một
cuộc kết nối SMTP là một cuộc đối thoại luân phiên được điều khiển bởi bên gửi.
Bên gửi gửi đi lệnh yêu cầu chờ cho đến khi nhận
được hồi đáp của bên nhận thì gửi lệnh tiếp theo.
Trang 394.3.THỨ TỰ CÁC CÂU LỆNH VÀ HỒI ĐÁP(tiếp).
THỨ TỰ LỆNH-HỒI ĐÁP:
CONNECTION ESTABLISHMENT S: 220
Trang 404.4 ĐIỀU KIỆN THỰC THI
TỐI THIỂU
Để có thể làm việc với SMTP, yêu cầu tối thiều
là tập lệnh sau, và thứ tự thực hiện phải theo đúng trình tự này :