Đọc thư (Reading Email)

Một phần của tài liệu Đề tài xây dựng ứng dụng webmail (Trang 31 - 36)

Khi UA được khởi động nó kiểm tra xem trong hộp thư của người sử dụng có thư

gửi đến không trước khi hiển thị các thứ khác lên màn hình. Khi đó có lẽ nó sẽ thông báo một số các thông điệp trong hộp thư hay hiển thị một dòng vắn tắt của mỗi thông điệp và chờ nhận lệnh để xử lý. Một ví dụ ở hình bên dưới cho thấy một viễn cảnh sau

khi UA khởi động hiển thị những yêu cầu vắn tắt của các thông điệp. Trong ví dụ này hộp thư (mailbox) gồm có tám thông điệp.

Mỗi dòng hiển thị chứa một số trường được trích ra từ phong thư hay phần đầu

(header) của từng thông điệp được định vị trong hộp thư. Trong một hệ thống thư điện

tử đơn giản, sự lựa chọn của các trường hiển thị được người ta xây dựng thành một chương trình. Trong các hệ thống phức tạp hơn, người sử dụng có thể xác định cho các trường nào được hiển thị bằng cách cung cấp một hiện trạng người sử dụng (User Profile), hay một tệp mô tả định dạng hiển thị. Trong ví dụ này, trường đầu tiên là số thông điệp có trong hộp thư. Trường thứ hai, là các cờ có thể chứa một kí tự K, có nghĩa là thông điệp cũ đã được đọc kỳ trước rồi và được lưu lại trong hộp thư; kí tự A

có nghĩa là thư này đã được hồi âm rồi; ký tự F (có thể có), có nghĩa là thư này được

chuyển tiếp đến người khác. Các cờ khác nữa cũng có thể được đưa vào ngoài những

cờ này.

# Flags Bytes Sender Subject

1 K 1030 Asw Changes to MINIX

3 KF 4519 Amy N. Wong Request for information

4 1236 Bal Deadline for grant proposal

5 103610 Kaashoek Text of DCS paper

6 1223 Emily E. Pointer to WWW page

7 3110 Saniya Referee reports for the page

8 1204 Dmr Re: My student’s visit

Hiển thị các nội dung của hộp thư.

Trường thứ ba cho biết chiều dài của thông điệp và trường thứ tư cho biết ai là

người gửi thông điệp. Vì trường này được trích ra từ các thông điệp rất đơn giản nên

trường này có thể chứa các tên, họ tên đầy đủ, các tên viết tắt, các tên đăng nhập, hay bất cứ thứ gì mà người gửi có thể đặt vào trong trường này. Cuối cùng là trường chủ đề thư (Subject) cho biết một câu vắn tắt về những gì trong nội dung thông điệp.

Những người nào quên điền vào trường này thì thường được cho là những câu trả lời

cho thư của họ là không chú ý đến mức ưu tiên cao nhất.

Sau khi các phần đầu đã được hiển thị, người sử dụng có thể thực hiện bất cứ

lệnh nào có thể. Một chọn lựa tiêu biểu được liệt kê ở bảng bên dưới (hình bên dưới) là một ví dụ khi một người sử dụng bằng hệ thống Mmdf của hệ điều hành UNIX. Có một số lệnh yêu cầu có tham số. Ký hiệu # có nghĩa là chỉ số của một thông điệp (hay

có thể có nhiều thông điệp) được chấp nhận. Tương tự, mẫu tự a có thể được sử dụng

có nghĩa cho tất cả các thông điệp.

Chúng ta bây giờ hãy quay đến từ giao diện người sử dụng đến định dạng của các thông điệp thư điện tử. Trước tiên chúng ta xét thư điện tử dựa trên bản mã ASCII sử dụng chuẩn RFC 822 (Request for Comments). Sau đó xét đến các mở rộng đa phương tiện cho chuẩn RFC 822.

1.3.2.4.Chuẩn RFC 822

Các thông điệp bao gồm một phong bì gốc (được mô tả trong chuẩn RFC 821),

một số các trường cho phần đầu (header), một dòng để trống và sau đó là phần thân

(body). Mỗi trường header bao gồm các dòng văn bản ASCII chứa tên trường, dấu hai

chấm, và cho hầu hết các trường đều có một giá trị. RFC 822 là một chuẩn cũ và giữa các trường header của phong bì (envelope) không phân biệt rõ ràng như một chuẩn

mới khác. Khi sử dụng, thông thường UA xây dựng một thông điệp và đưa nó qua bộ

phận tác nhân truyền thông điệp (message transfer agents - MTA), ở đây nó dùng một

số các trường header để xây dựng một envelope thực sự, thông điệp được thay đổi bởi

cái cũ đi một chút cùng với envelope.

Command Parameter Description

H # Display header(s) on the screen

C Display current header only

T # Type message(s) on the screen

S Address Send a message

F # Forward message(s)

A # Answer message(s)

D # Delete message(s)

M # Move message(s) to another mailbox

K # Keep message(s) after exiting

R Mailbox Read a new mailbox

N Go to the next message and display it

B Backup to the previous message and display it

G # Go to a specific message but do not display it

E Exit the mail system and update the mailbox

Các lệnh điều khiển thư đặc biệt

Các trường header chủ yếu liên quan đến việc chuyển giao thông điệp được liệt kê dưới bảng sau. Trường To: trường này cho biết địa chỉ DNS của người nhận đầu tiên. Trường hợp nhiều người nhận cũng có thể cho phép. Trường Cc: cho biết địa chỉ

của những người nhận kế tiếp (còn gọi là địa chỉ đồng gửi). Trong các thuật ngữ của

việc phát thư, không có sự phân biệt giữa những người nhận thứ nhất và người nhận

thứ hai. Thuật ngữ Cc (Carbon copy) là một mẫu đã được xác định, vì máy tính không sử dụng các trang giấy bản sao. Trường Bcc: (Blind carbon copy) giống như trường

Cc: chỉ trừ là dòng này được xóa khỏi tất cả các bản sao được gửi đến những người

nhận đầu tiên và người nhận thứ hai. Đặc tính này cho phép người ta gửi các bản sao đến những người trong nhóm thứ ba mà trong đó không có người thứ nhất và người

thứ hai biết.

Header Meaning

To: Email address(es) of primary recipient(s)

Bcc: Email address(es) for blind carbon copies

From: Person or people who created the message

Sender: Email address of the actual sender

Received: Line added by each transfer agent along the route Return-Path: Can be used to identify a path back to the sender

Các trường header RFC 822 liên quan trong việc truyền thông điệp

Hai trường kế tiếp, From:Sender: cho biết để phân biệt người viết và người

gửi thông điệp. Hai trường này hoàn toàn không giống nhau. Ví dụ một nhà quản trị

doanh nghiệp có thể viết một thông điệp nhưng cô thư ký là người thật sự truyền nó đi. Trong trường hợp này, người quản trị phải được liệt kê vào trong trường From: và cô

thư ký trong trường Sender:.

Header Meaning

Date: The date and time the message was sent

Reply-To: Email address to which replies should be sent Message-Id: Unique number for referencing this message latter In-Reply-To: Message-Id of the message to which this is a reply References: Other relevant Message-Ids

Keywords: User chosen keywords

Một số trường được sử dụng trong header thông điệp RFC 822.

Trường From: yêu cầu phải có còn trường Sender: có thể được bỏ qua nếu việc

viết và gửi cùng một người. Các trường này cần thiết khi trong trường hợp thông điệp không được phát đi và phải được trả lại cho người gửi.

Dòng chứa trường Received: được đưa vào bởi các MTAs dọc theo đường

truyền. Dòng này chứa định danh của agent, ngày tháng và thời gian thông điệp được

nhận, và các thông tin khác có thể được sử dụng cho việc tìm kiếm các lỗi trong hệ

thống định tuyến.

Trường Return-Path:được đưa vào bởi MTAs cuối cùng và được dùng cho việc

gửi trở lại người gửi. Theo lý thuyết, thông tin này có thể được tập hợp lại từ các

header Received: (loại trừ tên của hộp thư người gửi), nhưng nó ít khi được điền đầy đủ như thế và chỉ đặc biệt chứa địa chỉ của người gửi.

Thêm vào các trường của hình bên dưới các thông điệp RFC 822 cũng có thể

chứa một trong số các trường khác được sử dụng bởi các UA hay những người nhận thư. Những trường thông thường nhất được liệt kê trong hình bên dưới. Hầu hết những trường này có tính cách giải thích, vì thế chúng ta không đi sâu vào từng chi tiết.

1.4.PHÂN TÍCH CẤU TRÚC THƯ ĐIỆN TỬ, CÁC GIAO THỨC SMTP VÀ POP3

1.4.1.Phân tích cấu trúc thư điện tử (RFC 822)

Một phần của tài liệu Đề tài xây dựng ứng dụng webmail (Trang 31 - 36)