verificacion enviar correo devise forgot-password ruby-on-rails-3 postmark

verificacion - ¿Cómo puedo personalizar Devise para enviar correos electrónicos de restablecimiento de contraseña usando el correo de PostMark?



enviar correo de verificacion firebase (3)

Si también desea especificar ''etiquetas'' en los encabezados de matasellos, debe hacerlo en su correo:

# this override method is from Devise::Mailers::Helpers def headers_for(action) headers = { :subject => translate(devise_mapping, action), :from => mailer_sender(devise_mapping), :to => resource.email, :template_path => template_paths, :tag => action.dasherize # specify the tag here } if resource.respond_to?(:headers_for) headers.merge!(resource.headers_for(action)) end unless headers.key?(:reply_to) headers[:reply_to] = headers[:from] end headers end

Estoy tratando de obtener todas las notificaciones por correo electrónico de mi sistema bajo un paraguas usando PostMarkApp y utilizando las gemas Rails ( postmark-rails , postmark-gem , y mail ). He creado con éxito un correo que maneja el envío de recibos para compras, pero no he podido recibir correos electrónicos para las contraseñas olvidadas. Mis registros de desarrollo muestran que Devise envió el mensaje, pero no recibí ningún correo electrónico en mi bandeja de entrada y los créditos de PostMark no disminuyeron.

¿Cuál es la manera mejor o más fácil de enviar los correos de Devise a través de mi cuenta de PostMark?

Fragmento de código de 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

Mi Mailer que usa Matasellos

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

EDITAR: SOLUCIÓN a mi pregunta está abajo

Se solucionó haciendo que mi Notifier mailer extienda Devise :: Mailer y especificando Devise para usar mi Notifier como el remitente dentro de config/initializers/devise.rb

Fragmento de código de config / initializers / devise.rb

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

Mi notificador de correo ahora

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


También tuve que generar las vistas para diseñar y copiar las plantillas de correo en el lugar correcto para mi correo. Algo como esto -

rails generate devise:views cp app/views/devise/mailer/* app/views/notification_mailer/


Usando la última versión de Devise, los métodos anteriores no me ayudaron. Esta es mi solución.

En config / application.rb:

config.action_mailer.delivery_method = :postmark config.action_mailer.postmark_settings = { :api_key => "your-API-key-here" }

En config / initializers / devise.rb:

config.mailer = "UserMailer" # UserMailer is my mailer class

En app / mailers / user_mailer.rb:

class UserMailer < ActionMailer::Base include Devise::Mailers::Helpers default from: "[email protected]" def confirmation_instructions(record) devise_mail(record, :confirmation_instructions) end def reset_password_instructions(record) devise_mail(record, :reset_password_instructions) end def unlock_instructions(record) devise_mail(record, :unlock_instructions) end # you can then put any of your own methods here end

Por último, asegúrese de que ha generado vistas de dispositivos personalizados

rails generate devise:views

y mueva las plantillas de correo electrónico de app / views / devise / mailer / a app / views / user_mailer /

mv app/views/devise/mailer/* app/views/user_mailer/