1. Trang chủ
  2. » Luận Văn - Báo Cáo

IMAP EMAIL CLIENT program dev (Lập trình mạng với python)

32 498 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 688,51 KB

Nội dung

Đối với các doanh nghiệp, email lại càng trở nên quan trọng hơn trong những mẫu tin quảng cáo gửi tới nhiều khách hàng, các bản hợp đồng gửi tới những đối tác trong nước hay nước ngoài, hay các thông báo cho các nhân viên trong công ty…, với khả năng chuyển giao nhanh chóng gần như ngay lập tức, không khoảng cách, và chi phí rẻ thì email là một sự lựa chọn không thể thiếu cho các doanh nghiệp.Do đó, trong báo cáo bài tập lớn môn lập trình mạng, chúng em viết về một ứng dụng mạng “IMAP EMAIL CLIENT” đơn giản với các chức năng soạn mail mới và gửi đi (có đính kèm), hiển thị mail đến, đọc nội dung mail đến

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

 ❖ 

BÁO CÁO MÔN HỌC

LẬP TRÌNH MẠNG

IMAP EMAIL CLIENT

Giáo viên hướng dẫn : ThS Đặng Thanh Bình

Sinh viên thực hiện : 14110054 Nguyễn Trường Hận

14110001 Nguyễn Tuấn Anh

14110073 Trần Phan Khánh Huân

TP HỒ CHÍ MINH, THÁNG 12 NĂM 2017

Trang 2

i

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Tp Hồ Chí Minh, ngày… tháng … năm ……

Giáo viên hướng dẫn

Trang 3

ii

LỜI CẢM ƠN

Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian

từ khi bắt đầu học và làm báo cáo môn học đến nay, chúng em đã nhận được rất nhiều

sự quan tâm, giúp đỡ và hướng dẫn của thầy Chúng em xin chân thành cảm ơn thầy Đặng Thanh Bình giàng viên môn “Lập trình mạng” khoa Công nghệ thông tin đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong báo cáo môn học Nếu không có những lời hướng dẫn, dạy bảo của thầy thì chúng em nghĩ bài báo cáo này của chúng em rất khó có thể hoàn thiện được Một lần nữa, em xin chân thành cảm ơn thầy Bài báo cáo được thực hiện trong khoảng thời gian gần 4 tuần Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực sáng tạo trong nghiên cứu khoa học, kiến thức của chúng em còn hạn chế và còn nhiều

bỡ ngỡ

Trong quá trình làm bài báo cáo cuối kì , khó tránh khỏi sai sót, rất mong thầy bỏ qua Đồng thời do trình độ cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, chúng em rất mong nhận được ý kiến đóng góp thầy để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn bài báo cáo tốt nghiệp sắp tới

Sau cùng, em xin kính chúc quý thầy có thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau

TP Hồ Chí Minh, ngày 20 tháng 12 năm 2017

Sinh viên thực hiện

Nguyễn Tuấn Anh Trần Phan Khánh Huân Nguyễn Trường Hận

Trang 4

iii

LỜI NÓI ĐẦU

Ngày nay, sự bùng nổ và phát triển của công nghệ thông tin và mạng internet trên toàn thế giới, việc trao đổi thông tin đã trở nên dễ dàng hơn Một trong những cách để trao đổi thông tin trên internet không thể không nhắc tới vì những tiện ích và lợi ích mà

nó mang lại đó là thư điện tử hay còn gọi là e-mail (electronic mail) Thư điện tử (e-mail) là một hệ thống truyền nhận thư từ qua internet hay các mạng máy tính (computer network) E-mail có những lợi ích đáng kể so với cách viết thư truyền thống bằng giấy và mực Một thông điệp, một tin nhắn, lời chúc mừng hay văn bản,… có thể được gửi tại bất kỳ nơi nào trên toàn thế giới một cách dễ dàng và nhanh chóng gần như ngay lập tức E-mail chẳng những có thể truyền được chữ, nó còn có thể truyền được các dạng thông tin khác như hình ảnh, âm thanh, phim, và đặc biệt các phần mềm thư điện tử kiểu mới còn có thể hiện thị các e-mail dạng sống động tương thích với kiểu tệp html

Đối với các doanh nghiệp, e-mail lại càng trở nên quan trọng hơn trong những mẫu tin quảng cáo gửi tới nhiều khách hàng, các bản hợp đồng gửi tới những đối tác trong nước hay nước ngoài, hay các thông báo cho các nhân viên trong công ty…, với khả năng chuyển giao nhanh chóng gần như ngay lập tức, không khoảng cách, và chi phí rẻ thì e-mail là một sự lựa chọn không thể thiếu cho các doanh nghiệp

Do đó, trong báo cáo bài tập lớn môn lập trình mạng, chúng em viết về một ứng dụng mạng “IMAP EMAIL CLIENT” đơn giản với các chức năng soạn mail mới và gửi

đi (có đính kèm), hiển thị mail đến, đọc nội dung mail đến

Trang 5

iv

DANH MỤC TỪ VIẾT TẮT

IMAP: Internet Message Access Protocol

SMTP: Simple Mail Transfer Protocol

MUA: Mail User Agent

POP: Post Office Protocol

Trang 6

v

DANH MỤC HÌNH ẢNH

Hình 1: Cơ chế hoạt động của thư điện tử (E-mail) 2

Hình 2: Các trường của email 4

Hình 3: Giao diện đăng nhập 19

Hình 4: Giao diện viết email mới 19

Hình 5: Giao diện hộp thư đến 20

Hình 6: Giao diện xem thư 20

Hình 7: Giao diện đính kém file vào mail 21

Trang 7

vi

DANH MỤC BẢNG BIỂU

Bảng 1: Quy ước sử dụng các số cổng TCP 7

Trang 8

vii

MỤC LỤC

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN i

LỜI CẢM ƠN ii

LỜI NÓI ĐẦU iii

DANH MỤC TỪ VIẾT TẮT iv

DANH MỤC HÌNH ẢNH v

DANH MỤC BẢNG BIỂU vi

MỤC LỤC vii

Chương 1: TỔNG QUAN VỀ EMAIL 1

1.1 Khái niệm về thư điện tử (Email) 1

1.2 Lợi ích của thư điện tử (e-mail) so với thư truyền thống 1

1.3 Cơ chế hoạt động của thư điện tử 2

1.4 Kiến trúc của thư điện tử 4

Chương 2: TÌM HIỂU VỀ IMAP EMAIl CLIENT 6

2.1 Giới thiệu về giao thức IMAP 6

2.2 Giới thiệu về Email client 6

2.3 Ưu điểm và khuyết điểm của IMAP EMAIL CLIENT 7

Ưu điểm 7

Khuyết điểm 7

Chương 3: XÂY DỰNG CHƯƠNG TRÌNH IMAP EMAIL CLIENT 9

3.1 Code 9

Khai báo các thư viện cần thiết 9

Khai báo class Gmail 9

Hàm send_message trong class Gmail 9

Hàm get_inbox trong class Gmail 10

Hàm decode_base64 trong class Gmail 11

Hàm Show_Sign_In_Window trong class Gmail 11

Hàm Show_List_Form trong class Gmail 12

Hàm Show_Send_Email_Form trong class Gmail 12

Trang 9

viii

Hàm Show_Get_Inbox_Form trong class Gmail 13

Hàm TaoDoiTuong_Inbox trong class Gmail 15

Hàm TaoDoiTuong_Send trong class Gmail 15

Hàm TaoDoiTuong_Sign_In trong class Gmail 15

Các hàm thông báo trong class Gmail 16

Hàm click_attach_file_button trong class Gmail 16

Các Hàm xử lý button event 16

Hàm Subject_click trong class Gmail 17

Hàm close_windows trong class Gmail 17

Class inbox_info 17

Class Inbox_Info 17

Class Send_Email_Info 18

Gọi hàm 18

3.2 Giao diện 19

Đăng nhập 19

Giao diện viết mail mới 19

Xem hộp thư đến 20

Xem thư 20

Đính kèm file vào mail 21

Chương 4: KẾT LUẬN 22

TÀI LIỆU THAM KHẢO viii

Trang 10

1

Chương 1: TỔNG QUAN VỀ EMAIL

1.1 Khái niệm về thư điện tử (Email)

E-mail hay thư điện tử là một phương tiện truyền đạt thông tin rất nhanh Một mẫu thông tin (thư từ) có thể được gửi đi ở dạng mã hóa hay dạng thông thường và được chuyển qua các mạng máy tính đặc biệt là mạng internet Nó có thể chuyển mẫu thông tin từ một máy nguồn tới một hay rất nhiều máy nhận trong cùng một lúc

Ngày nay, e-mail không những có thể truyền được các ký tự, mà còn có thể truyền được các dạng thông tin khác như hình ảnh, âm thanh, phim và đặc biệt các phần mềm thư điện tử kiểu mới còn có thể hiện thị các e-mail dạng sống động tương thích với kiểu tệp html

1.2 Lợi ích của thư điện tử (e-mail) so với thư truyền thống

Thay vì viết thư bằng giấy mực và bút thì người gửi chỉ cần gõ chữ từ bàn phím của máy tính và biết dùng một phần mềm thư điện tử

Lá thư được gửi trên hệ thống bưu chính là vật liệu không cần máy nhận hay máy gửi Trong đó, nếu gửi thư điện tử, chỉ có các tín hiệu điện mã hóa nội dung bức thư điện tử được truyền đi đến máy nhận Do đó, chỉ nội dung hay cách trình bày lá thư điện

tử là được bảo toàn Trong khi đó, dùng đường bưu điện người ta có thể gửi đi các vật liều hàm chứa thêm nội dung hay ý nghĩa khác Điều này có thể rất quan trọng đối với nhiều người

Vận tốc truyền thư điện tử bất kỳ lúc nào cũng có thể mở phần mềm thư điện tử ra đọc nên tiện lợi hơn là việc phải bỏ thư ở các thùng thư Đồng thời, vì mỗi người dùng thư đều phải nhập mật khẩu vào máy nên thư điện tử sẽ khó bị người ở chung đọc lén

so với thư gửi bưu điện Nhưng ngược lại, các tay tin tặc xa lạ có thể xâm nhập vào hệ thống thư điện tử các nhân nếu như các mật mã hay các hệ thống an toàn phần mềm bị

bẻ gãy

Khối lượng gửi và nhận thư điện tử có thể nhiều hơn thư bưu điện rất nhiều lần Thư điện tử không thể bị hư hại vật lý Thư điện tử có thể bị nhiễm virus, các mã độc hại

Khả năng chuyển tiếp thư nhanh chóng

Trang 11

2

Hộp thư là nơi cất giữ các thư từ với địa chỉ xác định Tương tự, trong hệ thống thư điện tử, thì hộp thư này tương đương với phần dữ liệu chứa nội dung các e-mail cộng với địa chỉ của người chủ thư điện tử Điểm khác biệt ở đây là hộp thư điện tử sẽ

có nhiều chức năng hơn là việc xóa bỏ các thư cũ

Mỗi người có thế có một hay nhiều địa chỉ E-mail (và phải được đăng ký qua một

hệ thống nào đó) Mỗi hộp thư sẽ có một địa chỉ phân biệt không bao giờ trùng với địa chỉ E-mail khác

1.3 Cơ chế hoạt động của thư điện tử

E-mail là dịch vụ rất phổ biến và thông dụng trong mạng Internet và hầu như không thể thiếu được trong Internet hiện nay Tuy nhiên không phải hầu nhưn là dịch vụ “từ đầu- đến cuối ”(end to end) Nghĩa là dịch vụ này không đòi hỏi hai máy tính gửi và nhận thư phải nối trực tiếp với nhau để thực hiện việc chuyển thư Nó là dịch vụ kiểu lưu và chuyển tiếp (store-and-forward) thư được chuyển từ máy này sang máy khác cho tới khi máy đích nhận được Người nhận cũng chỉ thực hiện một số thao tác đơn giản để lấy thư, đọc thư và nếu cần thì cho in ra Cách liên lạc này thuận tiện hơn nhiều so với gửi thư thông thường qua bức điện hay Fax, lại rẻ và nhanh hơn Cách thực hiện việc chuyển thư không cần thiết phải kết nối trực tiếp với nhau để chuyển thư, thư có thể được chuyển từ máy này đến máy khác cho tới máy đích… Giao thức truyền thống sử dụng cho hệ thống thư điện tử của Internet là SMTP (Simple Mail Transfer Protocol)

Hình 1: Cơ chế hoạt động của thư điện tử (E-mail)

Giao thức liên lạc: mặc dù gửi thử trên Internet sử dụng nhiều giao thức khác nhau, nhưng giao thức SMTP được dùng trong việc vận chuyển mail giữa các trạm Giao thức này đặc tả trong 2 chuẩn là trong RFC 822(định nghĩa cấu trúc của thư) và RFC 821(đặc

Trang 12

3

tả giao thức trao đổi giữa hai mạng) ngoài ra trong RFC 821 sẽ nói rõ các qui luật và cách thức hoạt động của giao thức Là một giao thức cơ bản để chuyển thư giữa các máy Client, SMTP có bộ gửi thư, một bộ nhận thư, và một tập hợp lệnh dùng để gửi thư từ người gửi đến người nhận Giao thức SMTP hoạt động theo mô hình khách/chủ (Client/Server) với một tập lệnh đơn giản, trình khách (SMTP mail Client) sẽ bắt tay với máy chủ (SMTP mail Server ) gửi các yêu cầu tiếp nhận mail Trình đọc nội dung mail

do trình khác gửi đến và lưu vào một thư mục nhất định tương ứng với từng user trên máy chủ

Cứ mỗi trạm E-mail thường bao gồm ít nhất hai dịch vụ : POP3 có nhiệm vụ nhận/trả thư từ/tới E-mail client và dịch vụ SMTP có nhiệm vụ nhận/phân phối thư từ/đến POP3 đồng thời trao đổi thư với các trạm E-mail trung gian Ngoài ra trạm E-mail này có thể bổ sung thêm một số dịch vụ khác như ESMTP, IMAP, dịch vụ MX Record của dịch vụ DNS hay dịch vụ chuyển tiếp mail IMAP (INTERNET MESSAGE ACCESS PROTOCOL – VERSION 4revl) thực chất là giao thức mới bổ sung và mở rộng hơn của giao thức POP3 còn thiếu IMAP cho phép đọc, xóa, gửi, di chuyển mail ngay trên máy chủ Điều này rất thuận tiện cho người nhận mail phải thường xuyên di chuyển mail từ máy này sang máy khác trong quá trình làm việc Tuy nhiên chi phí để cài đặt một trạm E-mail có giao thức IMAP là cao hơn so với giao thức POP3

Mỗi người dùng (client) đều phải kết nối với một E-mail Server gần nhất (đóng vai trò bưu cục địa phương) phải có một tên (E-mail account) trên một trạm E-mail và

sử dụng chương trình E-mail client (ví dụ: hongnhung, macdinh123,…) Sau khi soạn thảo xong thư và đề rõ địa chỉ đích (người nhận) rồi gửi thư tới E-mail Server của mình E-mail Server này có nhiệm vụ sẽ tự động kiểm tra và định hướng chuyển thư tới đích hoặc chuyển thư tới một E-mail Server trung gian khác Thư chuyển tới E-mail Server của người nhận và được lưu trữ ở đó Đến khi người nhận thiết lập tới một cuốc kết nối tới E-mail Server đó thì thư sẽ chuyển về máy người nhận, nếu không thì thư vẫn tiếp tục giữ lại ở server đảm bảo không bị mất

Phần khác của thư điện tử là cho phép người sử dụng đính kèm (attachments) theo thư một tập tin bất kỳ (có thể dạng nhị phân chẳng hạn )

Như vậy để gửi/nhận thư người sử dụng chỉ cần quan tầm tới cách sử dụng chương trình E-mail Client Hiện nay có nhiều chương trình E-mail Client như Microsoft

Trang 13

4

Outlook Express, Eudora Pro, Peagasus mail, … và một dịch vụ E-mail Client rất phổ biến bây giờ là Webmail

1.4 Kiến trúc của thư điện tử

Về cơ bản, một bức thư Mail gồm 3 phần chính:

- Phần phong bì (Envelope): Mô tả thông tin về người gửi và người nhận

Phần này do các MTA tạo ra và sử dụng , nó chứa các thông tin để chuyển nhận email như địa chỉ người nhận, địa chỉ nơi gửi Hay nói cách khác, giao thức SMTP sẽ quy định thông tin của phong bì, các hệ thống E-mail cần những thông tin này để chuyền dữ liệu từ một máy tính này sang một

máy tính khác

- Phần tiều đề (header): chứa đựng các thông tin về người gửi, người nhận,

chủ đề bức Mail, địa chỉ hồi âm,v.v… Các thông tin này, một số được người sử dụng cung cấp khi gửi mail, một số khác được chương trình Mail

thêm vào, và số còn lại do Hệ thống điền thêm

+ Phần này cung cấp những thông tin tổng quát về Email như người

nhận, người gửi, ngày giờ nhận,…

+ Cấu tạo gồm nhiều trường (field) cấu trúc mỗi trường là một dòng văn

bản ASCII chuẩn 7 bit như sau:

<tên trường>:<nội dung của trường>

+ Sau đây là một số trường thông dụng và ý nghĩa của nó:

Hình 2: Các trường của email

Các trường trên là các trường chuẩn do giao thức SMTP quy định, ngoài ra trong phần header cũng có thể thêm một số trường khác do chương trình Email tạo ra nhằm quản lý các email mà chúng tạo ra

Trang 14

5

Các trường này được bắt đầu bằng ký tự X- và thông tin theo sau là cũng giống như ta thấy trên một trường chuẩn

+ Phần nội dung (body): chứa đựng nội dung của bức Mail, là nội dung

được tạo ra bởi trình soạn thảo Editor của chương trình Email Để phân biệt phần tiêu đề với phần nội dung của bức Mail, người ta quy ước đặt ranh giới là một dòng trắng (chuỗi ký tự ``\r\n``) Kết thúc của phần nội dung là chuỗi ký tự kết thúc Mail: ``\r\n.\r\n`` Như vậy nội dung bức Mail nằm trong khoảng giữa dòng trắng đầu tiên và ký tự kết thúc Mail Mặt khác do môi trường truyền thông là mạng Internet nên các ký tự cấu thành phần body của bức Mail cũng phải là các ký tự

ASCII chuẩn

Trang 15

6

Chương 2: TÌM HIỂU VỀ IMAP EMAIl CLIENT

2.1 Giới thiệu về giao thức IMAP

IMAP (tiếng Anh: Internet Message Access Protocol) là thế hệ mới của giao thức POP (Post Office Protocol) Nói một cách đơn giản, IMAP đặt sự kiểm soát email trên mail server trong khi nhiệm vụ của POP là tải toàn bộ thông điệp email về client server yêu cầu Cụ thể, IMAP cung cấp truy cập email theo ba chế độ khác nhau: offline (ngoại tuyến), online (trực tuyến) và disconnected (ngắt kết nối)

Truy cập chế độ offline IMAP giống như POP, các thông điệp email được truyền đến máy client server, xóa khỏi mail server và mối liên kết bị ngắt Sau đó người dùng đọc, trả lời, làm các việc khác ở chế độ ngoại tuyến, và nếu muốn gửi thư mới đi họ phải kết nối lại

Truy cập chế độ online là chế độ IMAP truy cập mà người dùng đọc và làm việc với thông điệp email trong khi vẫn giữ đang kết nối với mail server (kết nối mở) Các thông điệp này vẫn nằm ở mail server cho đến khi nào người dùng quyết định xóa nó đi Chúng đều được gắn nhãn hiệu cho biết loại để "đọc" hay "trả lời"

Trong chế độ disconnected, IMAP cho phép người dùng lưu tạm thông điệp ở client server và làm việc với chúng, sau đó cập nhật trở lại vào mail server ở lần kết nối

kế tiếp Chế độ này hữu ích cho những ai dùng laptop hay truy cập mạng bằng liên kết quay số điện thoại, đồng thời không muốn bỏ phí những lợi điểm của kho chứa thư ở mail server [3]

2.2 Giới thiệu về Email client

Email client (từ kỹ thuật là Mail User Agent (MUA), trong tiếng Việt là trình duyệt mail) là một phần mềm máy tính được dùng để truy cập và quản lý email của người dùng

Các mail client phổ biến bao gồm Microsoft Outlook, IBM Lotus Notes, Mozilla Thunderbird,, Evolution và Apple Inc.'s Mail.[4]

Một ứng dụng web cung cấp các dịch vụ quản lý tin nhắn, các thành phần, và các tính năng nhận mail đôi khi cũng được em là một trình duyệt mail, nhưng thường được gọi là webmail Các webmail phổ biến gồm Gmail, Lycos Mail, Mail.com, Outlook.com

và Yahoo! Mail

Trang 16

Chỉ dùng các phiên mã hóa

_pop3._tcp

995 _pop3s._tcp

_imap._tcp

993 _imaps._tcp

• Cấu hình giao thức đơn giản, nhiều mail client hỗ trợ giao thức imap

• Truy cập được từ nhiều địa điểm khác nhau

• Cần kết nối internet để truy cập mail

• Xem nhanh hơn khi chỉ có các tiêu đề mail được tải về đến khi nội dung được yêu cầu rõ ràng [2]

• Mail được dự phòng tự động trên server

• Tiết kiệm không gian lưu trữ cục bộ

• Cho phép lưu hành mail cục bộ [2]

Khuyết điểm

Ngày đăng: 25/10/2018, 17:22

TỪ KHÓA LIÊN QUAN

w