Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 2
lượt xem 9
download
Quá trình cấu hình sẽ được bắt đầu bằng cách tham khảo httpd.conf và các chỉ thị của nó. Mặc dù các file access.conf và srm.conf còn tồn tại song chúng là những file cũ mà không được sử dụng nhiều bởi hầu hết các nhà quản trị và người sử dụng sẽ không tìm thấy bất kỳ chỉ thị nào ở đó. Httpd.conf chứa rất nhiều các tư liệu của chính nó, được sinh ra bởi các chỉ thị cấu hình mặc định gửi gắm khi khởi động với Apache server. ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 2
- Quá trình cấu hình sẽ đ ược bắt đầu bằng cách tham khảo httpd.conf và các ch ỉ thị của nó. Mặc dù các file access.conf và srm.conf còn tồn tại song chúng là những file cũ m à không được sử dụng nhiều bởi hầu hết các nh à quản trị và người sử dụng sẽ không tìm th ấy bất kỳ chỉ thị nào ở đó. Httpd.conf chứa rất nhiều các tư liệu của chính nó, đư ợc sinh ra bởi các chỉ thị cấu h ình mặc định gửi gắm khi khởi động với Apache server. Bắt đầu bằng cách đọc các lời chú thích để hiểu file cấu h ình và làm một số thay đổi nhỏ, khởi động lại Apache trong một cửa sổ giao tiếp với mỗi thay đổi. Nếu người sử dụng tạo ra một lỗi, nó sẽ d ễ d àng sao lưu để định dạng lần làm việc cuối cùng . Các khác nhau của Apache trên Windows chính là: + Bởi vì Apache trên Windows thì đ ang luồng, nó không sử dụng các tiến trình riêng biệt cho mỗi yêu cầu như là của Unix. Thay cho việc thư ờng chỉ có 2 tiến trình đ ang chạy: Một tiến trình cha và một tiến trình con để xử lý các yêu cầu. Với tiến trình con mỗi yêu cầu đư ợc xử lý bởi một luồng riêng.Vì thế tiến trình qu ản lý các chỉ thị là khác nhau: + Các ch ỉ thị mà ch ấp nhận các tên file như các đối số phải sử dụng các tên file kiểu Windows thay cho các tên file Unix. Tuy nhiên, bởi vì Apache server sử dụng các tên file kiểu Unix bên trong, phải tiến hành cắt bớt, không cắt phần sau. Các ký tự đ iều khiển có thể được sử dụng, nếu bỏ qua, ký tự điều khiển với Apache khả thi sẽ đ ảm nhận. + Apache trên Windows có khả năng nạp các mô đun ngay khi chay mà không biên d ịch lại server. Nếu Apache biên d ịch bình thường, nó sẽ cài đặt một số mô đun tuỳ
- chọn trong thư mục /module, để kích hoạt chúng hoặc các mô đun khác sử dụng lệnh sau đây: LoadModule status_module modules/mod_status.so + Apache cũng có thể nạp các phần mở rộng ISAPI (các dịch vụ ứng dụng Internet) chẳng hạn các ứng dụng đư ợc sử dụng bởi Microsoft IIS và các server Windows khác. (Chú ý: Apache không nạp các bộ lọc ISAPI). + Khi đang chạy CGI script, các phương thức Apache tìm kiếm các giải thích cho script được cấu hình đang sử dụng chỉ thị ScriptInterpreterSource. 9 . Apache và các d ịch vụ hỗ trợ: a) HTTPD: Tên dòng lệnh: h ttpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config] [ -C directive ] [ -c directive ] [ -D parameter ] Mô tả: là một chương trình HTTP server . Nó được thiết kế để chạy như một tiến trình d eamon một mình. Khi dùng đ ến dịch vụ này, nó sẽ tạo ra một nhóm các tiến trình con để đáp ứng các yêu cầu. Để ngừng dịch vụ n ày, nó sẽ gửi một tín hiệu TERM đ ến tiến trình cha. PIG của tiến trình này sẽ ghi lên một file và dưa vào file cấu h ình. HTTPD sẽ được gọi bởi Internet deamon inetd mỗi khi có một kết nối đến d ịch vụ HTTP đã được thiết lập. Các đối số cụ thể của dòng lệnh -R libexecdir: Tham số n ày chỉ có hiệu lực nếu Apache đư ợc cài đặt với tập SHARED_CORE cho phép, nó tác động đến nhân nhị phân của Apache để thay thế
- vào trong một file đối tượng chia xẻ động (DSO). File n ày được dò tìm trên một đường dẫn hardcoded bên dưới ServerRoot mặc định -d serverroot: Thiết lập giá trị ban đầu của chỉ thị ServerRoot đến serverroot. Chức n ăng này có thể bị bỏ qua bởi dòng lệnh ServerRoot trong file cấu hình. Mặc định server root là usr/local/apache. -f : Thực thi các lệnh trong file config khi Startup. Nếu file config không bắt đầu với a/, lúc đó nó sẽ lấy một một đường dẫn có liên quan đến ServerRoot. Mặc định của nó là conf/httpd.conf. -C directive: Thực hiện cấu hình các chỉ thị trước khi đọc file config. -c directive: Thực hiện cấu h ình các ch ỉ thị sau khi đọc file config. -D parameter: Thiết lập một thông số cấu hình mà nó có th ể sử dụng với cặp thẻ … trong các file cấu hình để bỏ qua có điều kiện hoặc thực h iện các lệnh. b ) APACHECTD: Là một đầu vào các HTTP server. Nó được thiết kế để giúp ngư ời quản trị điều khiển các chức năng của Apache HTTPD deamon. Tên dòng lệnh: apachectl command [...] Với các lệnh: Start: Khởi động Apache deamon. Đưa ra một thông báo lỗi nếu chương trình đang chạy lúc đó. Stop: Ngừng dịch vụ Apache deamon.
- Restart: Khởi động lại Apache deamon bằng cách gửi cho nó một SIGHUP. Lệnh n ày tự động kiểm tra các file cấu hình qua văn bản cấu hình trước khi bắt đầu khởi động lại để chắc chắn rằng Apache vẫn còn đang hiện diện trong máy. Fullstatus: Hiển thị đầy đủ các báo cáo trạng thái từ mod_status. Để lệnh này được thi hành, cần phải cho phép mod_status trên server và m ột trình duyệt text_based chẳng hạn như Lynx có sẵn trong hệ thống. URL sử dụng nó để truy cập bản báo cáo trạng thái có thể đư ợc thiết lập bằng giá trị STATUSURL có sẵn trong script. Status: Hiển thị ngắn gọn bảng trạng thái giống như ch ức năng fullstatus trừ phi d anh sách các yêu cầu phục vụ thời bị bỏ qu ên. Configtest: Chạy một đoạn văn bản các cụ pháp của file cấu h ình. Nó phân tích các file cấu h ình và các bảng Syntax Ok hoặc thông tin chi tiết về các lỗi cú pháp đặt b iệt. Help: Hiển thị các thông báo lỗi được sắp xếp. c) APXS Tên dòng lệnh: apxs -g [ -S variable=value ] -n name apxs -q [ -S variable=value ] query ... apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ... apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ... Mô tả: Là một công cụ để xây dựng và các đặt các mô đun mở rộng cho Apache HTTP server. Được thực hiện bằng cách cài đặt một DSO từ một hay nhiều nguồn hoặc
- đối tượng file mà sau đó nó có thể nạp vào Apache trong thời gian chương trình đ ang chạy qua chỉ thị LoadModule từ mod_so. Để sử dụng kỹ thuật mở rộng này, máy tính của người sử dụng phải hỗ trợ DSO và Apache HTTPD nhị phân phải được xây dựng với mô đun mod_so. Công cụ apxs sẽ tự động nhắc nhở nếu là các trường hợp ngược lại. Ta cần phải kiểm tra việc này b ằng dòng lệnh: $ httpd -l mô đun mod_so ph ải có trong danh sách được hiển thị. Nếu các yêu cầu này đư ợc thỏa mãn, thì có thể dễ dàng m ở rộng các chức năng của Apache server bằng cách cài đặt các mô đun của mình với kỹ thuật DSO b ằng công cụ apxs này. Ví d ụ: $ apxs -i -a -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module /path/to/apache/sbin/apachectl restart: httpd started Các đ ối số File có thể là bất kỳ một file nguồn c (.c), file đối tượng (.o) hoặc ngay cả một thư việc lưu trữ (.a). Công cụ apxs tự động công nhận các phần mở rộng này
- và tử động sử dụng các file nguồn C cho việc biên dịch trong khi nó chỉ sử dụng các file đối tượng và lưu trữ cho giai đoạn liên kết. Nhưng khi sử dụng nhiều đối tượng trước biên d ịch , phải chắc chắn rằng chứng được liên kết cho PIC để có thể sử dụng chúng cho một DSO. Cho ví dụ với GCC, người sử dụng luôn chỉ phải sử dụng –fpic. Đối với các các biên dịch C khác yêu cầu phải tham khảo tài liệu hướng d ẫn của nó hoặc chờ đợi các cờ apxs, để biên dịch các file đối tượng. Các đối số cụ thể của dòng lệnh: - n n ame: Thiết lập tên mô đun cho ch ức năng –i (cài đặt) và – g (tạo khuôn mẫu). Sử dụng nó đ ể chỉ ra tên mô đun. Ch ức năng –g là bắt buộc, chức năng –I thì có tác dụng khiến công cụ apxs cố gắng xác định tên từ nguồn hoặc ít nhất cũng đoán được từ tên file. -q : Thực hiện ruy vấn cho apxs về các cài đặt nào đó. Tham số truy vấn có thể là một hoặc nhiều các giá trị: CC TARGET CFLAGS SBINDIR CFLAGS_SHLIB INCLUDEDIR LD_SHLIB LIBEXECDIR LDFLAGS_SHLIB SYSCONFDIR LIBS_SHLIB PREFIX Sử dụng các chức năng n ày để hướng dẫn xác định các thông số cài đặt: INC = I ‘apxs –q INCLUDEDIR’ b ên trong các Makefile nếu cần hướng dẫn các truy cập đến các file tiêu đ ề của Apache.
- -S variable = value: Chức năng này thay đ ổi các cài đặt apx đi kèm với các giá trị đ ặc biệt theo sau như: • Chức năng tạo ra một khuôn mẫu: -q: ch ức năng tạo ra một thư m ục con và 2 file trong đó: Một file nguồn ví dụ mô đun tên là mod_name.c mà nó có thể sử dụng như một khuôn mẫu cho việc tạo các mô đun của chính người sử dụng hoặc như một quá trình khởi động nhanh cho việc chạy các kỹ thuật apxs. Và một mẫu thư Makefile với mục đích là dễ tạo và cài đ ặt các mô đun này. • Chức năng biên dịch DSO: -c : Chức năng này chỉ ra thao tác biên d ịch. Đầu tiên nó biên dịch các file nguồn C (.c) của files vào trong các file đối tượng tương ứng (.o) và sau đó cài đặt một DSO vào trong dsofile bằng cách liên kết các file đối tượng này cùng với các file đối tượng còn lại (.o và .a) của files. -o dsofile: Chỉ ra tên file của file DSO đ ã tạo. Nếu không có sự chỉ định và tên file không thể đoán được từ bảng liệt kê các file, tên dự ph òng mod_unknow.so được sử dụng. • Chức năng cài đặt và định dạng DSO: -i : Chức năng này để chỉ thao tác cài đặt và cài đặt một hoặc nhiều hơn các DSO vào trong thư mục libexec của server. -a : Chức năng n ày để chỉ thao tác kích hoạt đến mô đun bằng cách tự động thêm vào một dòng LoadModule đ ến file cấu hình httpd.conf của Apache hoặc cho phép nó thực thi nếu đã tồn tại.
- -A :Chức năng này cũng giống như – a nhưng nó tạo một chỉ thị LoadModule được đ ặt th êm vào một dấu (#), có nghĩa là mô đun ch ỉ cho phép cho các thi hành ngay sau đó còn lúc đầu th ì bị cấm. -e : Chức năng này dành cho thao tác hiệu chỉnh, có thể sử dụng kèm với chức năng – a và –A, cũng giống như chức năng –I: Thao tác hiệu chỉnh file cấu hình h ttpd.conf của Apache mà không cố găng cài đặt các mô đun. Ví d ụ: Giả sử người sử dụng đã có sẵn một mô đun Apache tên là mod_foo.c mà nó sẽ mở rộng chức năng server của Apache. Để làm việc đó, trước hết cần phải biên dịch một nguồn C vào trong một DSO phù hợp cho việc nạp vào trong Apache server. Có thể sử dụng lệnh sau: $ apxs -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o $_ Sau đó tiến hành cập nhật cấu hình Apache bằng cách chắc chắn rằng một chỉ thị LoadModule được đưa ra đ ể nạp DSO này. Để đ ơn giản bước này, apxs cung cấp một cách tự động cách cài đ ặt DSO vào trong thư mục libexec và cập nhật file h ttpd.conf. Bằng cách sử dụng các lệnh: $ apxs -i -a mod_foo.c cp mod_foo.so /path/to/apache/libexec/mod_foo.so chmod 755 /path/to/apache/libexec/mod_foo.so
- [activating module `foo' in /path/to/apache/etc/httpd.conf] $_ Cách này là một dòng lệnh có tên: LoadModule foo_module libexec/mod_foo.so được thêm vào để cấu hình file nếu vẫn chưa được đưa ra. Nếu muốn cấm thao tác n ày sử dụng thêm vào ch ức năng –A. $ apxs -i -A mod_foo.c Để kiểm tra nhanh apxs, người sử dụng tạo ra một mẫu ví dụ mô đun Apache cùng với một th ư từ Makefile bằng cách: $ apxs -g -n foo Creating [DIR] foo Creating [FILE] foo/Makefile Creating [FILE] foo/mod_foo.c $_ Sau đó có thể biên dịch ngay mô đun ví dụ này vào một DSO và nạp nó lên Apache server: $ cd foo $ make all reload apxs -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o apxs -i -a -n "foo" mod_foo.so cp mod_foo.so /path/to/apache/libexec/mod_foo.so
- chmod 755 /path/to/apache/libexec/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] apachectl restart /path/to/apache/sbin/apachectl restart: httpd không ch ạy,cố gắêng khởi động [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): nạp foo_module /path/to/apache/sbin/apachectl restart: httpd khởi động $_ Người sử dụng có thể sử dụng apxs để biên dịch các mô đun phức tạp b ên ngoài cây n guồn Apache, cũng như PHP bởi vì apxs tự động chấp nhận nguồn C và các file đối tư ợng. 10. Biên d ịch Apache trên Windows: Để biên dịch Apache đòi hỏi Microsoft Visual C++ 5.0 hoặc 6.0 phải được cài đ ặt sẵn sàng. Nó có thể được cài đặt với các công cụ dòng lệnh hoặc với môi trường Viual Studio. Tham khảo sách h ướng dẫn C++ để xác định cách cài đặt chúng. Đặc b iệt nhất là nhận thấy file vcvars32.bat từ thư mục Program Files/DevStudio/VC/bin và và file setenv.bat từ Platform SDK đ ược yêu cầu để chuẩn bị các công cụ dòng lệnh cho việc sử dụng dòng lệnh. Để cài đ ặt Apache với file Makefile.win hoặc dự án Install.Bin trong Visual Studio IDE, tiện ích awk cũng được yêu cầu. Đầu tiên b ản phải cài đặt awk.exe ở nơi nó có thể được tìm th ấy trong đường dẫn và môi trư ờng DevStudio nếu dự định sử dụng IDE, có nhiều phiên bản của awk sẵn có trên Windows. Cách dễ nhất là cài đặt bằng cái có sẵn được tải xuống từ
- http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe và nên lưu nó với tên awk.exe h ơn là awk95.exe. Sau đó bung gói Apache đưa vào trong một thư mục thích hợp, mở cửa sổ dòng lệnh và thay đổi thư mục con src của Apache. Các tài liệu chính cung cấp cho các file tạo Apache được chứa trong file Makefile.win. Để biên d ịch Apache trên Windows chỉ cần sử dụng các dòng lệnh: nmake /f Makefile.win _apacher (release build) nmake /f Makefile.win _apached (debug build) Nếu được một thông báo lỗi kiểu như "the name specified is not recognized..." thì phải chạy file vevas32.bat trư ớc: bằng dòng lệnh sau: "C:\Program Files\DevStudio \VC\Bin \VCVARS32.BAT" (cần phải sửa đổi dòng lệnh n ày nếu VC được cài ở nơi khác) Sau đó chạy nmake một lần nữa. Apache cũng có thể được biên dịch với môi trường Visual Studio development của VC++. Để đơn giản tiến trình này một vùng làm việc Visual Studio, Apachedsw (được cung cấp trong th ư mục src) đưa ra danh sách lối vào của các dự án working.dsb được yêu cầu để hoàn thành Apache (binary release). Nó cung cấp các phần phụ thuộc giữa các tiến trình. Nó bao gồm cả các phần phụ thuộc giữa các dự án đ ể đảm bảo rằng chúng được cài đặt theo một trật tự thích hợp. InstallBin là một dự án cao cấp m à nó sẽ cài đ ặt tất cả các d ự án, và cài đ ặt các file biên dịch vào nơi thích hợp của nó. Các nhân dự án .dsp đư ợc cài đặt bởi Apache.dsw và makefile.win là: o s\win32\ApacheOS.dsp
- o s\win32\Win9xConHook.dsp regex\regex.dsp ap\ap.dsp lib \expat-lite\xmltok.dsp yêu cầu xmltok lib \expat-lite\xmlparse.dsp lib \sdbm.dsp m ain \gen_uri_delims.dsp m ain \gen_test_char.dsp yêu cầu tất cả các file ở trên ApacheCore.dsp yêu cầu ApacheCore Apache.dsp Trong phần thêm vào, thư mục con os/win32 chứa các file dự án cho các mô đun chức năng, tất cả chúng đều yêu cầu ApacheCore. o s\win32\mod_auth_anon.dsp cũng yêu cầu sdbm o s\win32\mod_auth_dbm.dsp o s\win32\mod_auth_digest.dsp o s\win32\mod_cern_meta.dsp o s\win32\mod_digest.dsp o s\win32\mod_expires.dsp o s\win32\mod_headers.dsp o s\win32\mod_info.dsp o s\win32\mod_mime_magic.dsp o s\win32\mod_proxy.dsp o s\win32\mod_rewrite.dsp
- o s\win32\mod_speling.dsp o s\win32\mod_status.dsp o s\win32\mod_unique_id.dsp o s\win32\mod_usertrack.dsp o s\win32\mod_vhost_alias.dsp Thư mục support chứa các file dự án cho các chương trình được th êm vào mà nó không nằm trong phần Apache đang chạy nhưng nó được sử dụng bởi người quản trị để duy trì password và các file log. support\htdigest.dsp support\htpasswd.dsp support\logresolve.dsp support\rotatelogs.dsp Một khi Apache đã biên d ịch nó cần được cài đặt trong thư mục gốc server của nó, m ặc định là /Apache trên đĩa cứng đang sử dụng. Để tự động cài đ ặt các file vào trong thư mục c:/ServerRoot, sử dụng lệnh nmake: nmake /f Makefile.win installr INSTDIR=c:\ServerRoot (for release build) nmake /f Makefile.win installd INSTDIR=c:\ServerRoot (for debug build) Đối số c:\ServerRoot để cho INTSDIR nhận các thư mục cài đặt (nó có thể được bỏ qua nếu Apache được cài đặt trong th ư mục \Apache) Quá trình cài đ ặt sẽ diễn ra như sau: c:\ServerRoot\Apache.exe – Chương trình Apache c:\ServerRoot\ApacheCore.dll - Apache runtime [shared libary] c:\ServerRoot\Win9xConHook.dll - Win9x console fixups [shared library]
- c:\ServerRoot\xmlparse.dll – phân tích cú pháp XML [shared library] c:\ServerRoot\xmltok.dll - XML token engine [shared library] c:\ServerRoot\bin\*.exe – Các chương trình quản trị c:\ServerRoot\cgi-bin – Ví dụ CGI scripts c:\ServerRoot\conf – Thư mục chứa các file cấu hình. c:\ServerRoot\icons - Icons for FancyIndexing c:\ServerRoot\include\*.h – Các file header củaApache c:\ServerRoot\htdocs - Site Welcome index.html c:\ServerRoot\htdocs\manual – Tài liệu Apache. c:\ServerRoot\lib – Các file tài liệu động. c:\ServerRoot\libexec – Thư viện liên kết động. c:\ServerRoot\logs – Thư m ục rỗng logging. c:\ServerRoot\modules\mod_*.dll – Các mô đun n ạp Apache. CHƯƠNG II CÁC NGHI THỨC TRUYỀN NHẬN (Mail System) đòi hỏi h ình thành các chuẩn về Mail. Điều này giúp cho việc gởi nhận các message được đảm bảo, làm cho những người ở các nơi khác nhau có th ể trao đổi thông tin cho nhau. Có 2 chu ẩn về Mail quan trọng nhất và được sử dụng nhiều nhất từ trước đến n ay là X.400 và SMTP (Simple Mail Transfer Protocol). SMTP thư ờng đi kèm với chuẩn POP3 và do h ạn chế của SMTP m à ngày nay người ta dùng chu ẩn mở rộng của nó là ESMTP (Extended SMTP). Mục đích chính của X.400 là cho phép các m ail có thể được truyền nhận thông qua các loại mạng khác nhau bất chấp cấu h ình phần cứng, hệ điều h ành m ạng , giao thức truyền dẫn được dùng. Còn mục đích của
- chuẩn SMTP miêu tả cách điều khiển các message trên mạng Internet. Điều quan trọng của chuẩn SMTP là giả định máy nhận phải dùng giao thức SMTP gởi Mail cho 1 Server luôn luôn ho ạt động. Sau đó, ngư ời nhận sẽ đến lấy Mail của họ từ Server khi nào họ muốn dùng giao thức POP (Post Office Protocol), ngày nay POP được cải tiến thành POP3 (Post Officce Protocol vertion 3). Các giao thức Mail thông dụng : chuẩn X.400, chuẩn MAIP, SMTP (ESMTP), POP3 . Ở đây chỉ trình b ày chi tiết về POP3 và SMTP. PHẦN 1 GIAO THỨC SMTP (SIMPLE MAIL TRANSFER PROTOCOL ) Bộ phận chính của hệ thống Internet Mail chính là các MTA ( Message Transfer Agent), các MTA giữ 1 vai trò quan trọng trong việc chuyển giao email. Ví dụ sau khi m ột người sử dụng gửi một bức mail tới hàng đ ợi m essage, MTA sẽ lấy đó và chuyển nó tới một MTA khác. Quá trình đó sẽ tiếp tục tiếp diễn cho đến khi m essage đ ến được nơi nhận. Để có thể liên lạc với các MTA thông qua kết nối TCP các MTA của hệ thống Internet Mail có thể sử dụng nhiều nghi thức khác nhau đ ể chuyển giao các thông tin (X400,ESMTP,....), Nh ưng ở đ ây ta chỉ xét nghi thức SMTP. Đây là một nghi thức cho phép chuyển mail từ điểm này sang điểm khác cho đến đích trên m ạng Internet. Nó được cấu tạo bởi tập các câu lệnh để Client có th ể yêu cầu Sever thực hiện một số tác vụ và tập các câu trả lời để Server hồi đáp lại cho Client về kết quả thực hiện các tác vụ đó. Một chương trình muốn gởi được m ail thì nó ph ải biết địa chỉ của một SMTP server. Server này có nhiệm vụ chuyển m ail đến nơi cần thiết. I- GIỚI THIỆU
- Một đặc trưng quan trọng của SMTP là khả năng chia ca Mail qua môi trường dịch vụ giao chuyển, một dịch vụ giao chuyển cung cấp một môi trường truyền thông liên quá trình (Interprocess Communication Environment –IPCE ). Một môi trường truyền thông liên qu á trình có thể bao gồm một Network, vài Network, hay m ột tập h ợp con của Network. Điều đó quan trọng cho việc thực hiện hệ thống giao chuyển (hay các IPCE) one-to-one với Network, một quá trình có thể giao tiếp với một quá trình khác thông qua việc nhận biết IPCE. Mail là ứng dụng hay là cách dùng của giao tiếp liên quá trình, Mail có thể giao tiếp giữa các quá trình trong những IPCE khác bằng cách chia ca thông qua một quá trình được kết nối đến hai (hay nhiều ) IPCE. Chi tiết hơn Mail có th ể chia ca giữa những Host trên hệ thống giao chuyển khác nhau bằng một Host trên cả hai hệ thống chuyển giao. II- MÔ HÌNH SMTP: SMTP được thiết kế dựa trên mô hình giao tiếp sau: như kết quả của một yêu cầu Mail của user . Sender- SMTP thiết lập mộ t kênh hai đư ờng vận chuyển đến một receiver- SMTP . Receiver- SMTP có thể là đích đ ến cuối cùng hay một trung gian. Những lệnh SMTP đư ợc sinh ra bởi Sender-SMTP gửi đến Receiver- SMTP. Những reply SMTP được gửi từ Receiver- SMTP đ ến Sender- SMTP trong sự đáp ứng cho những lệnh đó. Khi một kênh giao chuyển được thiết lập Sender-SMTP gửi đi 1 lệnh Mail biểu thị cho người gửi của mail đó. Nếu Receiver-SMTP có thể chấp nhận mail, nó trả lời với một OK reply. Sau đó Sender-SMTP gửi một lệnh RCPT nhận diện Receiver m ail nếu Receiver-SMTP có thể chấp nhận mail nó trả lời với 1 OK reply nếu không nó sẽ lời với 1 reply bác bỏ receiver đó (nhưng không phải toàn b ộ sự giao
- d ịch đó). Sender- SMTP và Receiver- SMTP có thể điều đình với vài recipient, khi những recipient đã được d àn xếp Sender-SMTP gửi mail data kết thúc với một chuỗi đặc biệt nếu receiver xử lý mail data th ành công nó trả lời với 1 OK reply. Cuộc hội thoại một cách chủ ý lock – step (one-at-a-time). Sơ đồ trên là mô hình cho cách dùng SMTP. SMTP cung cấp những cơ chế giao chuyển Mail một cách trực tiếp từ Host của user gửi đến host của user nhận khi cả hai host được kết nối đến cùng d ịch vụ giao chuyển hay qua nhiều SMTP-Sever tiếp vận khi host xuất phát hay đích đến không được kết nối đến cùng d ịch vụ chu yển giao. Để có thể cung cấp khả năng tiếp vận SMTP-Sever ph ải đư ợc cung cấp tên của host đến cùng chẳng hạn như hạn của m ailhost đ ến . Đối số của lệnh mail là 1 reverse-path nó đặc tả mail đó từ đâu đến; đối số cho RCPT là 1 Forward-path nó đặc tả mail đó đi đến đâu. Forward -path là một lộ trình n guồn, reverse-path là một lộ trình trở về (nó có thể đ ược dùng đ ể trả về một m essage cho người gửi khi xảy ra lỗi với 1 message đư ợc tiếp nhận). Khi cùng một message được gửi cho nhiều recipient SMTP khuyến khích chuyển giao ch ỉ một bản sao của data cho tất cả các Receiver ở cùng một host đích. Những command và reply mail có những cú pháp khắc khe. Những reply cũng có một mã số. Trong những thí dụ theo sau sẽ xuất hiện những lệnh (commands) và những trả lời (replies) , một danh sách các lệnh và reply hoàn ch ỉnh trong phần 4. Các command và reply không phân biệt kiểu chữ hoa hay thường. Lưu ý, điều này không đúng với tên của User mailbox. Cho một số host tên của user có phân biệt kiểu chữ, SMTP phải thi hành đầy đủ việc nhận kiểu chữ và giữ gìn kiểu chữ của
- những user name như chúng đã xuất hiện trong những đối số của mailbox. Host n ames không phân biệt kiểu chữ. Các command và reply là những ký tự được tạo ra từ tập ký tự ASCII{1}, khi dịch vụ vận chuyển cung cấp một kênh chuyển giao 8 bit (octet). Mỗi một ký tự 7 bit được truyền đúng bằng cách chuyển nó về hệ 8 (octet) với bit có thứ tự cao nhất bị xóa về 0. Khi đặc tả cấu trúc thông thường của command và reply, một đối số (hay một ký hiệu đặc biệt ) sẽ đ ược biểu th ị bằng một biến meta-linguistic (hay một hằng số), ví dụ như : “”, hay “”. Ở đây dấu ngoặc nhọn chỉ định chúng là những biến meta-linguistic. Tuy nhiên các đối số thì dùng dấu ngoặc nhọn một cách literal. Ví dụ như, một reverse-path thực được bao trong dấu ngoặc nhọn như, “” là một trường hợp của (dấu n goặc nhọn được giao chuyển trong command và reply là mã thực của nó). III. MAIL: 1 - Khái quát : Có 3 bước cho sự giao dịch SMTP mail. Giao d ịch được bắt đầu với yêu cầu Mail mang sự nhận diện ngư ời gửi, tiếp theo sau là một chuỗi của một hay nhiều lệnh RCPT trao những thông tin của receiver, sau đó một lệnh DATA cho mail d ata.Và cuối cùng là phần chỉ định kết thúc mail data xác nhận giao d ịch đó. Bước đầu tiên trong thủ tục là lệnh MAIL... chứa mailbox nguồn: MAIL FROM : Lệnh này báo cho receiver biết một giao dịch mail mới sẽ bắt đầu và để reset tất cả các bảng trạng thái và các buffer của nó bao gồm tất cả recipient hay mail data. Nó
- phát ra reverse-path có thể được dùng để báo lỗi. Nếu được chấp nhận receiver- SMTP trả về một reply 250 OK. có thể chứa nhiều hơn một mailbox. là một lộ trình n guồn trở về liệt kê các host và mailbox nguồn. Host đầu tiên trong reverse-path sẽ là host gửi lệnh n ày. Bước thứ hai trong thủ tục này là lệnh RCPT : RCPT To : Lệnh này phát đi một forward-path nhận diện recipient. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Và lưu lại forward-path. Nếu recipient không nh ận biết thì receiver trả về reply 550 Failure. Bước thứ hai của thủ tục này có th ể lặp lại nhiều lần. Forward-path có th ể chứa nhiều h ơn một mailbox. Forward -path là lộ trình nguồn liệt kê các host và mailbox đích. Host đ ầu tiên trong sẽ là host nhận lệnh này. Bước thứ ba trong thủ tục là lệnh DATA DATA Nếu chấp nhận receiver-SMTP trả về một reply 354 và coi tất cả các dòng nối tiếp đó là message text. Khi văn bản cuối cùng được nhận và lưu trữ receiver-SMTP gửi một reply 250 OK. Kể từ khi mail được gửi trên kênh chuyển giao, điểm kết thúc của mail phải được chỉ định để hội thoại command và reply có thể bắt đ ầu trở lại. SMTP chỉ định kết thúc của mail bằng cách gửi một dòng chứa chỉ một dấu chấm.
- Chú ý rằng mail data bao gồm những mục (item) memo header chẳng hạn như Subject, To, Cc, From. Ph ần chỉ định kết thúc của mail data cũng xác nhận sự giao dịch mail và báo cho receiver-SMTP biết để xử lý việc lưu trữ recipient và mail data ngay lúc đó. Nếu được chấp nhận receiver-SMTP trả về một reply 250 OK. Lệnh DATA sẽ chỉ lỗi n ếu giao dịch mail không hoàn thành (ví dụ không có receiver) hoặc nếu tài nguyên không có hiệu lực. Thủ tục trên là m ột ví dụ của một giao dịch mail. Những lệnh n ày ch ỉ được dùng trong những trật tự được trình bày ở trên. Ví dụ : Một minh họa cách dùng nh ững lệnh n ày: Ut; end with . S: Blah b lah blah... S: ...etc. etc. etc. S: . R: 250 OK Bây giờ mail được chấp nhận cho Jones và Brown. Green không có m ột mailbox trên Beta host. 2- Sự định hướng : Có m ột số trường hợp thông tin của đích đến trong bị sai nhưng receiver-SMTP biết đích đến đúng. Trong trường hợp như vậy một trong những reply sau sẽ được dùng đ ể cho phép người gửi tiếp xúc đến đích đúng : 251 User not local ; will forward to
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đồ án tốt nghiệp " TÌM HIỂU VỀ CÁC WEB SERVER THÔNG DỤNG. TÌM HIỂU VỀ MAILING LIST VÀ CÁC MAIL SYSTEM. XÂY DỰNG MỘT CHƯƠNG TRÌNH INTERNET MAIL "
90 p | 1662 | 584
-
ĐỒ ÁN TỐT NGHIỆP: " Tìm hiểu một số công nghệ web và xây dựng chương trình newsletter "
88 p | 190 | 60
-
Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 1
39 p | 188 | 44
-
Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 4
38 p | 89 | 15
-
Đồ án web server mailing list và mail system nhằm xây dựng IM hoàn chỉnh - 3
39 p | 61 | 11
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn