//
you're reading...
Codes, Ruby

Sử Dụng Ruby Để Kiểm Tra Email

emaillogoNgày nay, nói đến email là nói phương tiện thông tin không thể thiếu của cuộc sống số. Không chỉ các công việc số hóa đều thường sử dụng tới email mà ngay cả việc giao tiếp, liên lạc cũng thường sử dụng tới email. Các nhà dịch vụ cung cấp email mang lại cho chúng ta các dịch vụ email với dung lượng lớn, nhiều tiện dụng, có nhiều chức năng, lại đăng kí rất nhanh chóng và miễn phí.

Thậm chí việc kiểm tra email, gửi email, xóa thứ rác, xóa thư quảng cáo cũng càng ngày càng ngày trở nên dễ dàng hơn. Hơn thế nữa, bạn có thể kiểm tra email dễ dàng bằng cách sử dụng ngôn ngữ Ruby.

Hiện nay, có rất nhiều loại giao thức mạng dùng để kiểm tra, lấy nhận email về cho người dùng. Trong số đó, 2 loại giao thức POP3 (Post Office Protocol) và IMAP4 (Internet Message Access Protocol), là 2 chuẩn giao thức Internet thông dụng nhất dùng để lấy nhận email. Hầu như các máy tính hiện nay đều hỗ trợ cả 2 giao thức này. Bạn có thể tìm hiểu thêm về giao thức POP3 này ở đây.

Việc kiểm tra email bằng Ruby thật đơn giản chỉ cần sử dụng thư viện có sẳn do Ruby cung cấp, và thư viện này là thư viện hỗ trợ cho việc kết nối theo kiểu giao thức POP3. Để bắt đầu sử dụng thư viện POP3 của Ruby, đơn giản chỉ cần khai báo thư viện ở đầu mã nguồn require ‘net/pop‘ để có thể kết nối tới máy chủ.  Để kết nối tới máy chủ cung cấp dịch vụ email thì tất nhiên là bạn cần có tên người dùng, mật khẩu của tài khoản được cấp. Dưới đây là một mẫu ví dụ minh họa cho việc kết nối POP3 email bằng Ruby, bạn cũng có thể xem thêm chi tiết về thư viện này ở đây.

require ‘net/pop‘

pop = Net::POP3.new(‘pop.example.com‘)
pop.start(‘TaiKhoan‘, ‘MatKhau‘)
if pop.mails.empty?
puts ‘Khong co mail nao moi.‘
else
puts ‘Co #{pop.mails.length} mail moi.‘
end

Mã nguồn trên quá đơn giản, nó chỉ có nhiệm vụ là thông báo có mail mới. Chúng ta có thể bổ sung thêm các chức năng khác cho nó để nó hoàn hảo hơn như là sau bao lâu thì kiểm tra lại, mỗi khi có mail mới thì phát ra âm thanh để báo hiệu, cho tải nội dung của email về và lưu thành các tập tin,… Thí dụ đoạn mã dưới đây cho phép ta tải các email mới về và lưu trữ nó lên máy tính.

require ‘net/pop‘

pop = Net::POP3.new(‘pop.example.com‘)
if pop.mails.empty?
puts ‘Khong co mail nao moi.‘
else
i = 0
puts ‘Co #{pop.mails.length} mail moi.‘
puts ‘Dang tai ve…‘
pop.each_mail do |mail |
puts mail.pop
File.open( “inbox/#{i}“, ‘w‘ ) do |f|
f.write mail.pop
end
mail.delete
i += 1
end
end

Tuy nhiên, bạn sẽ gặp vấn đề nếu bạn thử sử dụng thư viện POP3 của Ruby để kết nối tới các dịch vụ email như Gmail, Yahoo, Hotmail, … thì sẽ không thành công, bởi vì các dịch vụ cung cấp email hiện nay đều sử dụng cơ chế POP3 với SSL, nhằm nâng cao tính bảo mật, tính an toàn và tính riêng tư cho email. Trong khi đó, thư viện ‘net/pop‘ của Ruby 1.8 chưa có hỗ trợ việc kết nối email POP3 với SSL. Còn trong thư viện của Ruby 1.9 thì sao?

~Fri3ng3R~

Advertisements

Discussion

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: