19 Stimmen

Wie kann ich Devise anpassen, um E-Mails zum Zurücksetzen von Passwörtern mit PostMark Mailer zu versenden?

Ich versuche, alle E-Mail-Benachrichtigungen meines Systems unter einem Dach zusammenzufassen, indem ich PostMarkApp und die Verwendung der Rails-Gems ( Poststempel-Schienen , postmark-gem y E-Mail ). Ich habe erfolgreich einen Mailer erstellt, der Quittungen für Einkäufe versendet, aber ich konnte keine E-Mails für vergessene Passwörter empfangen. Meine Entwicklungsprotokolle zeigen, dass Devise die Nachricht gesendet hat, aber keine E-Mail in meinem Posteingang empfangen wird und die PostMark-Credits nicht verringert werden.

Wie kann ich die Mailings von Devise am besten oder einfachsten über mein PostMark-Konto verschicken lassen?

Ausschnitt aus config/environments/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

Mein Mailer, der den Poststempel verwendet

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

EDIT: Die LÖSUNG meiner Frage steht unten

Ich habe das Problem gelöst, indem ich meine Notifier mailer erweitern Devise::Mailer und angeben, dass Devise meinen Notifier als Mailer verwenden soll config/initializers/devise.rb

Ausschnitt aus config/initializers/devise.rb

# Configure the class responsible to send e-mails.
config.mailer = "Notifier"

Mein Melder Mailer jetzt

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X