Я пытаюсь получить все почтовые уведомления моей системы под одним зонтиком, используя PostMarkApp и используя гемы Rails ( postmark-rails , postmark-gem и почта ). Я успешно создал почтовую программу, которая обрабатывает отправку квитанций о покупках, но я не смог получить электронные письма для забытых паролей. Мои журналы разработки показывают, что Devise отправил сообщение, но электронная почта не поступила в мой почтовый ящик, и кредиты PostMark не уменьшены.
Какой самый лучший или самый простой способ отправлять почтовые программы Devise через мою учетную запись PostMark?
Фрагмент из config / environment / development.rb
config.action_mailer.delivery_method = :postmark
config.action_mailer.postmark_settings = { :api_key => "VALID_API_KEY_WAS_HERE" }
config.postmark_signature = VALID_POSTMARK_SIGNATURE_WAS_HERE
Мой почтовик, который использует почтовый штемпель
class Notifier < ActionMailer::Base
# set some sensible defaults
default :from => MyApp::Application.config.postmark_signature
def receipt_message(order)
@order = order
@billing_address = order.convert_billing_address_to_hash(order.billing_address)
mail(:to => @order.user.email, :subject => "Your Order Receipt", :tag => 'order-receipt', :content_type => "text/html") do |format|
format.html
end
end
end
РЕДАКТИРОВАТЬ: РЕШЕНИЕ на мой вопрос ниже
Решено это с помощью моего Notifier
почтового расширения Devise :: Mailer и указания Devise для использования моего уведомителя в качестве почтового в config/initializers/devise.rb
фрагмент из config / initializers / devise.rb
# Configure the class responsible to send e-mails.
config.mailer = "Notifier"
Мой почтовый ящик для уведомлений
class Notifier < Devise::Mailer
# set some sensible defaults
default :from => MyApp::Application.config.postmark_signature
# send a receipt of the Member's purchase
def receipt_message(order)
@order = order
@billing_address = order.convert_billing_address_to_hash(order.billing_address)
mail(:to => @order.user.email, :subject => "Your Order Receipt", :tag => 'order-receipt', :content_type => "text/html") do |format|
format.html
end
end
# send password reset instructions
def reset_password_instructions(user)
@resource = user
mail(:to => @resource.email, :subject => "Reset password instructions", :tag => 'password-reset', :content_type => "text/html") do |format|
format.html { render "devise/mailer/reset_password_instructions" }
end
end
end