LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CAO ĐẠT
SVTH : Trần Ngọc Sơn & Hoàng Đức Quang Trang 49
C
C
H
H
Ư
Ư
Ơ
Ơ
N
N
G
G
I
I
I
I
I
I
:
:
C
C
H
H
Ư
Ư
Ơ
Ơ
N
N
G
G
T
T
R
R
Ì
Ì
N
N
H
H
S
S
M
M
T
T
P
P
C
C
L
L
I
I
E
E
N
N
T
T
I
I
.
.
C
C
A
A
Ù
Ù
C
C
C
C
A
A
Á
Á
U
U
T
T
R
R
U
U
Ù
Ù
C
C
D
D
Ư
Ư
Õ
Õ
L
L
I
I
E
E
Ä
Ä
U
U
D
D
U
U
Ø
Ø
N
N
G
G
T
T
R
R
O
O
N
N
G
G
M
M
O
O
D
D
U
U
L
L
E
E
S
S
M
M
T
T
P
P
C
C
L
L
I
I
E
E
N
N
T
T
:
:
struct DLVTO
{
char *host;
struct DLVTO *next;
};
struct SENTO
{
int id ;
/*chỉ số id của thư*/
char *from ;
/*mail from*/
struct DLVTO *to ;
/*send to*/
long mleng ;
/*chiều dài của nội dung thư*/
long msgseek;
/*vò trí của thư có chỉ số là id trong file*/
};
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CAO ĐẠT
SVTH : Trần Ngọc Sơn & Hoàng Đức Quang Trang 50
I
I
I
I
.
.
S
S
Ơ
Ơ
Đ
Đ
O
O
À
À
K
K
H
H
O
O
Á
Á
I
I
:
:
1
1
.
.
S
S
Ơ
Ơ
Đ
Đ
O
O
À
À
T
T
O
O
Å
Å
N
N
G
G
Q
Q
U
U
A
A
Ù
Ù
T
T
:
:
Yes
Deliver mail và tạo back up
nếu có yêu cầu
Đóng kết nối
Mở và đọc file outbox
Có thư cần gởi?
Tạo socket kết nối tới server
Thoát và báo lỗi tương
ứng
No
END
BEGIN
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CAO ĐẠT
SVTH : Trần Ngọc Sơn & Hoàng Đức Quang Trang 51
2
2
.
.
S
S
Ơ
Ơ
Đ
Đ
O
O
À
À
K
K
H
H
O
O
Á
Á
I
I
C
C
H
H
O
O
K
K
H
H
O
O
Á
Á
I
I
M
M
Ơ
Ơ
Û
Û
V
V
A
A
Ø
Ø
Đ
Đ
O
O
Ï
Ï
C
C
F
F
I
I
L
L
E
E
:
:
Yes
Mở file outbox để đọc
và xóa.
Tạo ra danh sách người
nhận đối với mail này.
Có trường Bcc?
End of file?
Thoát và
đóng file
Yes
No
No
Tạo danh sách send, đọc từ outbox
va ghi vào file tạm
BEGIN
END
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CAO ĐẠT
SVTH : Trần Ngọc Sơn & Hoàng Đức Quang Trang 52
3
3
.
.
S
S
Ơ
Ơ
Đ
Đ
O
O
À
À
K
K
H
H
O
O
Á
Á
I
I
C
C
H
H
O
O
K
K
H
H
O
O
Á
Á
I
I
D
D
E
E
L
L
I
I
V
V
E
E
R
R
:
:
Yes
Báo Lỗi và gởi QUIT
Yes
Yes
No
P = send ;
P != NULL?
Gởi lệnh HELO
Reply == 250?
Gởi MAIL FROM:<người gởi>
Reply == 250?
No
Yes
No
2
BEGIN
Báo Lỗi và Thoát
R = p -> to ;
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CAO ĐẠT
SVTH : Trần Ngọc Sơn & Hoàng Đức Quang Trang 53
No
Yes
R != NULL?
Gởi RCPT TO:<đòa chỉ từng
người nhận>
Reply == 250?
Gởi DATA và mail data
Reply ==354?
Gởi QUIT, thông báo thành công
2
Yes
No
Thoát và báo lỗi
Thoát và báo lỗi
END