Gem Letter Opener trong Rails

Hi mọi người, Hôm nay mình xin gửi đến mọi người một gem rất hay để giải quyết việc gửi mail mà không muốn lập mail thử nghiệm hay mail spam. Đó chính là gem Letter Openner. Thôi, muộn rồi nên mình đi vô nội dung chính luôn nhé! 😃))) Đề sử dụng được gem "Letter Opener" đầu tiên bạn cần thêm nó vào môi trường phát triển của bạn sau đó mở command lên và chạy lệnh "bundle" để cài đặt nó

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 như sau:

config.action_mailer.delivery_method = :letter_opener

Bây giờ bất kỳ email sẽ bật lê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. Nếu bạn muốn thay đổi ứng dụng đó sẽ được sử dụng để mở email của bạn, bạn nên ghi đè biến môi trường LAUNCHY_APPLICATION hoặc thiết lập Launchy.application trong initializer.

Non Rails Setup

Nếu bạn không sử dụng Rails, điều này có thể dễ dàng thiết lập bằng cách sử dụng Mail gem. 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 là tương tự nếu bạn đang sử dụng Pony gem:

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 trực tiếp (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

Letter Opener sử dụng Launchy để mở gửi mail trong trình duyệt. Điều này giả định quá trình Ruby được chạy trên các máy phát triển địa phương. Nếu bạn đang sử dụng một dàn máy chủ riêng biệt hoặc máy ảo này sẽ không làm việc. Trong trường hợp đó xem xét sử dụng Mailtrap hoặc MailCatcher. Link tham khảo: https://github.com/ryanb/letter_opener

Vậy nhé, chúc mấy bạn thực hành okie 😃))


All Rights Reserved