Ruby on Rails Mailer nu trimite e-mailuri în modul de dezvoltare (Programare, Ruby Pe Șine, Ruby, Actionmailer)

Mateusz Urbański a intrebat.
a intrebat.

Am o aplicație Ruby on Rails cu un mailer simplu care arată așa:

class EventMailer < ActionMailer::Base

  default from: "example.com"

  def welcome_email(event, customer)
    @event = event
    @customer = customer
    mail :subject => "Test", :to => @customer.email
  end
end

Setările mele action_mailer arată astfel:

config.action_mailer.smtp_settings = {
    :address   => "smtp.mandrillapp.com",
    :port      => 587, # ports 587 and 2525 are also supported with STARTTLS
    :enable_starttls_auto => true, # detects and uses STARTTLS
    :user_name => "my_email",
    :password  => "my_password", # SMTP password is any valid API key
    :authentication => 'login', # Mandrill supports 'plain' or 'login'
    :domain => 'yourdomain.com', # your domain to identify your server when connecting
  }

Am, de asemenea, înregistrarea clientului cu devise și trimite e-mailul în mod corespunzător. Dar când încerc să rulez în consola mea:

EventMailer.welcome_email(Event.last, Customer.last).deliver

Nu livrează e-mailul. Ce poate fi în neregulă? Nu am nici o idee…

Editare: Restul configurației mele

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true

Comentarii

  • stackoverflow.com/questions/20769589/… –  > Por Rahul Dess.
  • Vreo eroare în consola ta? –  > Por Ilya Bodrov-Krukowski.
  • Nu, nu există nicio eroare în consolă… –  > Por Mateusz Urbański.
  • Btw, dvs. default from pare ciudat. Un e-mail ar trebui să fie pus acolo. –  > Por Ilya Bodrov-Krukowski.
  • Oh, chestiile astea se întâmplă des 🙂 Mă bucur că v-a ajutat! –  > Por Ilya Bodrov-Krukowski.
1 răspunsuri
Ilya Bodrov-Krukowski

Mailul nu este trimis în dezvoltare în mod implicit. Pentru a activa acest lucru, ar trebui să modificați development.rb astfel:

config.action_mailer.perform_deliveries = true

Puteți, de asemenea, să activați config.action_mailer.raise_delivery_errors = true pentru a ridica erori de livrare.

UPDATE

S-a dovedit a fi default from cauza problemelor, deoarece a fost furnizat un e-mail invalid.

Comentarii

  • Mulțumesc pentru răspuns, dar configurația mea este corectă, deoarece dispozitivul trimite e-mailuri în dezvoltare. –  > Por Mateusz Urbański.
  • Mai multe detalii pe blog.eq8.eu/til/rails-deliver-mail-to-file.html –  > Por oaamados.