Tìm hiểu về Gem Letter Opener
Gem Letter Opener là gì? Việc xây dựng một website ắt hẳn không thể thiếu xây dựng tính năng gửi mail. Tuy nhiên trong quá trình xây dựng bạn có thể gặp một số vấn đề là: Bạn phải thiết lập một email để test Bạn vô tình gửi email đến cho một địa chỉ email khác dẫn đến việc rò rỉ thông ...
Gem Letter Opener là gì?
Việc xây dựng một website ắt hẳn không thể thiếu xây dựng tính năng gửi mail. Tuy nhiên trong quá trình xây dựng bạn có thể gặp một số vấn đề là:
- Bạn phải thiết lập một email để test
- Bạn vô tình gửi email đến cho một địa chỉ email khác dẫn đến việc rò rỉ thông tin Với những vấn đề trên thì gem Letter Opener ra đời đề bạn có thể kiểm tra email ngay trên trình duyệt mặc định thay vì phải gửi email đi.
Cài đặt với rails
Đầu tiên như thường lệ để cài đặt gem này vào ứng dụng rail của mình chúng ta cần phải thêm gem vào gemfile. Do đây là gem để test nên chúng ta sẽ thêm vào trong môi trường development
gem "letter_opener",: group =>: development
Sau đó bạn cần thiết lập phương thức delivery method trong file config/environments/development.rb:
config.action_mailer.delivery_method =: letter_opener config.action_mailer.perform_deliveries = true
Giờ đây, mọi email sẽ xuất hiện trong trình duyệt của bạn thay vì được gửi đi. Các tin nhắn được lưu trữ trong tmp/letter_opener.
Cài đặt khi không sử dụng rails
Khi không sử dụng rails chúng ta có thể sử dụng gem Mail để thiết lập. Chỉ cần thiết lập các phương pháp phân phối khi cấu hình Mail và chỉ định một vị trí:
require "letter_opener" Mail.defaults do delivery_method LetterOpener::DeliveryMethod, :location => File.expand_path('../tmp/letter_opener', __FILE__) end
Phương pháp này tương tự nếu bạn đang sử dụng gem Pony:
require "letter_opener" Pony.options = { :via => LetterOpener::DeliveryMethod, :via_options => {:location => File.expand_path('../tmp/letter_opener', __FILE__)} }
Ngoài ra nếu bạn đang sử dụng ActionMailer (không có rails) bạn sẽ cần thêm các phương pháp phân phối:
require "letter_opener" ActionMailer::Base.add_delivery_method :letter_opener, LetterOpener::DeliveryMethod, :location => File.expand_path('../tmp/letter_opener', __FILE__) ActionMailer::Base.delivery_method = :letter_opener
Sử dụng với máy chủ riêng biệt
Letter Opener sử dụng Launchy để mở mail đã gửi trong trình duyệt. Điều này có nghĩa là quá trình này được chạy trên local. Vì vậy nếu bạn đang sử dụng một máy chủ riêng biệt hay một máy ảo thì các bạn hãy tìm hiểu sử dụng Mailtrap hoặc MailCatcher để thay thế.
Tham khảo tại
link tham khảo
Như vậy chúng ta đã cùng nhau tìm hiểu qua về gem Letter Opener. Cảm ơn các bạn đã theo dõi.