Pull E-mail là một giải pháp không tốt: Pull E-mail là một giải pháp cơ bản để các thiết bị email kết nối tới server và truy xuất các messages. Điểm tốt của cách này là người dùng có thể quản lý việc truy cập server, chỉ truy cập khi cần kiểm tra e-mail. Với nhu cầu tự động thông báo có e-mail mới, một cách giải quyết khác là giả lập push mail – ứng dụng sẽ kết nối tới server để kiểm tra sau những khoảng thời gian định kì. Tuy nhiên điểm hạn chế của phương pháp này là:
- Truy cập mạng thường xuyên để kiểm tra e-mail sẽ tốn nhiều tài nguyên thiết bị và tiền bạc của người dùng.
- E-mail mới nhận về thực chất không ngay lập tức như push mail, tùy thuộc vào thời gian định kì được thiết lập.
Giải pháp : IMAP IDLE
- IMAP là lựa chọn hoàn hảo để xây dựng một ứng dụng Push E-mail cho các thiết bị di động. Bằng việc sử dụng lệnh IDLE, e-mail mới sẽ được thông báo ngay lập tức.
- Cách thức hoạt động của lệnh IDLE: IMAP hoạt động trên Client sẽ phát sinh các lệnh gửi cho server, server sẽ đáp lại 2 thông tin sau:
1. Một trả lời cho yêu cầu từ Client 2. Thông tin có bất kì message nào?
Điều này có nghĩa là Client phải luôn kết nối với Server trong quá trình thực hiện lệnh. Server sẽ trả lời cho Client khi có message mới. Nhưng có những khó khăn khi thực hiện cách trên trên thiết bị di động:
1. Vấn đề timeout: Kết nối thường timeout sau 30 phút chưa kể đến việc timneout khi sử dụng cơ chế NAT Gateway. Có thể khắc phục bằng cách gửi lệnh NOOP sau khoảng 15 phút để kích hoạt lại kết nối hiện có.
2. Mất địa chỉ IP: Với các thiết bị di động IP thay đổi thường xuyên do đó kết nối cũng dễ mất đi và phải kết nối lại.
Với những khó khăn trên đã thúc đẩy đến việc xây dựng một hệ thống Push E- mail để giải quyết các khó khăn trên, đó là xây dựng một Push E-mail Server. Đó là xây dựng một server chuyên vai nhiệm vụ kết nối với các Mail Server để kiểm tra mail mới và thông báo lại cho các thiết bị di động. Việc xây dựng một hệ thống thế này tuy tốn nhiều chi phí nhưng đáp ứng tốt nhu cầu Push E-mail hiện nay.
Chương 6: các kĩ thuật xử lý trong ứng dụng
76
Hình 6.3 - Mô hình hệ thông PUSH E-MAIL.
- Xây dựng một ứng dụng server (Push Mail Server) có chức năng: Cho người dùng đăng kí tài khoản.
Cho người dùng đăng kí dịch vụ push mail bằng các tài khoản mail của các server hiện có.
Ghi chú: Việc đăng kí có thể bằng điện thoại hoặc bằng PC. Truy cập vào các mail server bằng tài khoản người dùng đăng kí. Thông báo cho client khi có mail mới.
- Xây dựng ứng dụng client có chức năng:
Truy cập vào mail server để lấy mail về. Thao tác trên các mail.
Cách thức hoạt động:
- B1: Người dùng sử dụng thiết bị di động hoặc PC truy cập vào website của hệ thống để đăng kí tài khoản người dùng. Tài khoản này dùng để đăng nhập mỗi khi Client có nhu cầu sửa đổi thông tin.
Chương 6: các kĩ thuật xử lý trong ứng dụng
77 - B2: Đăng nhập bằng tài khoản vừa đăng kí. - B3: Chọn chức năng đăng kí dịch vụ Push mail.
- B4: Nhập thông tin, thiết lập cấu hình (có thể thay đổi cấu hình) Các thông tin chính gồm:
Tài khoản mail (Yahoo, Gmail, Hotmail, ...) Thông tin mail server
Số điện thoại dùng để gửi tin nhắn báo hiệu có e-mail mới. Chế độ PUSH hiện tại (ON/OFF)
Mã pin và IMEI của máy để server quản lý. - B4: Server giao tiếp với các mail server để kiểm tra:
Với mỗi tài khoản đăng kí, nếu chế độ PUSH là ON sẽ sử dụng thông tin để đăng nhập vào mail server. Vì Push Server có tốc độ xử lý nhanh nên việc chuyển đổi và xử lý nhiều tải khoản coi như là liên tục và song song.
Dùng lệnh IDLE để kiểm tra mail mới: Lệnh IDLE của IMAP có 1 đặc điểm nổi bật là server sẽ không có trả lời cho tới khi có mail mới. (Các kĩ thuật duy trì kết nối)
Khi có mail mới, push server gửi 1 tin SMS cho số điện thoại của client (sử dụng các dịch vụ mạng hiện có)
Chú ý: Ngoài cách trên còn có các cách xử lí khác (nhưng không tốt): Push server lấy mail mới về và gửi cho client
- B5: Client nhận tin SMS từ server, có 2 cách xử lí trong trường hợp này: Client mở ứng dụng để đọc mail.
Tự động khởi động ứng dụng khi có tin SMS từ push server. Client thao tác trực tiếp với mail server khi đọc mail.
- B6: Client có thể thay đổi chế độ PUSH thành ON/OFF (Phải đăng nhập vào hệ thống).