Задать вопрос
etspring
@etspring
Начитанное быдло

ActionMailer + delayed_job не уходит почта. В чем причина?

Приветствую,
Проблема в следующем. Имеются 4-ые рельсы, реализована отправка почты через ActionMailer.
Далее потребовалось прикрутить delayed_job, так как рассылка проводится по большой базе пользователей ( сразу скажу - не СПАМ ). После прикручивания DJ почта доставляться перестала, при это DJ корректно отрабатывает ( записи в таблице delayed_jobs появляются и затем обрабатываются ). В чем проблема? Я грешу на то, что DJ почему-то не подцепляет config.action_mailer из production.rb
Заранее спасибо за ответ.

Код и лог ниже.

production.rb:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
                                          address:              'mail.xxx.ru',
                                          port:                 25,
                                          domain:               'xxx.ru',
                                          user_name:            'ruby@xxx.ru',
                                          password:             'XxXxXx',
                                          authentication:       'plain',
                                          enable_starttls_auto: false  
                                        }


mail_controller.rb
def send_some(emails)
                email_subject = ...
                .....
		emails.each do |e|
			PMailer.send_email(e.to_s,email_subject,email_body).deliver
		end
		redirect_to root_path
end


p_mailer.rb:
class PMailer < ActionMailer::Base
  default from: "ruby@xxx.ru"

  def send_email(email,mail_subject,mail_body)
  	mail(to: email, subject: "#{mail_subject}", body: "#{mail_body}")
  end
  handle_asynchronously :send_email

end


PMailer#send_email: processed outbound mail in 6.2ms
   (0.2ms)  BEGIN
  SQL (0.3ms)  INSERT INTO "delayed_jobs" ("created_at", "handler", "run_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["created_at", "2014-09-18 07:46:53.823461"], ["handler", "--- !ruby/object:Delayed::PerformableMethod\nobject: !ruby/object:PMailer\n  _routes: \n  _action_has_layout: true\n  _mail_was_called: false\n  _message: !ruby/object:Mail::Message\n    body: !ruby/object:Mail::Body\n      boundary: \n      preamble: \n      epilogue: \n      charset: US-ASCII\n      part_sort_order:\n      - text/plain\n      - text/enriched\n      - text/html\n      parts: !ruby/array:Mail::PartsList []\n      raw_source: ''\n      encoding: 7bit\n    body_raw: \n    separate_parts: false\n    text_part: \n    html_part: \n    errors: \n    header: !ruby/object:Mail::Header\n      errors: []\n      charset: UTF-8\n      raw_source: ''\n      fields: !ruby/array:Mail::FieldList []\n    charset: UTF-8\n    defaulted_charset: true\n    smtp_envelope_from: \n    smtp_envelope_to: \n    perform_deliveries: true\n    raise_delivery_errors: true\n    delivery_handler: \n    delivery_method: !ruby/object:Mail::SMTP\n      settings:\n        :address: localhost\n        :port: 25\n        :domain: localhost.localdomain\n        :user_name: \n        :password: \n        :authentication: \n        :enable_starttls_auto: true\n        :openssl_verify_mode: \n        :ssl: \n        :tls: \n    transport_encoding: !ruby/class 'Mail::Encodings::SevenBit'\n    mark_for_delete: false\n    raw_source: ''\n  _prefixes: &1\n  - pumpit_mailer\n  _lookup_context: !ruby/object:ActionView::LookupContext\n    details_key: \n    details:\n      :locale:\n      - :en\n      :formats:\n      - :html\n      - :text\n      - :js\n      - :css\n      - :ics\n      - :csv\n      - :vcf\n      - :png\n      - :jpeg\n      - :gif\n      - :bmp\n      - :tiff\n      - :mpeg\n      - :xml\n      - :rss\n      - :atom\n      - :yaml\n      - :multipart_form\n      - :url_encoded_form\n      - :json\n      - :pdf\n      - :zip\n      :variants: []\n      :handlers:\n      - :erb\n      - :builder\n      - :raw\n      - :ruby\n      - :jbuilder\n      - :coffee\n    skip_default_locale: true\n    cache: true\n    prefixes: *1\n    rendered_format: \n    view_paths: !ruby/object:ActionView::PathSet\n      paths:\n      - !ruby/object:ActionView::OptimizedFileSystemResolver\n        pattern: \":prefix/:action{.:locale,}{.:formats,}{+:variants,}{.:handlers,}\"\n        cache: !ruby/object:ActionView::Resolver::Cache\n          data: !ruby/object:ActionView::Resolver::Cache::SmallCache\n            backend: {}\n            default_proc: !ruby/object:Proc {}\n        path: \"/Users/administrator/apps/pmailer/app/views\"\n  _action_name: send_email\n  _response_body: \nmethod_name: :send_email_without_delay\nargs:\n- user@xxxx.ru\n- \"Здравствуй, мама!\"\n- \"Пишу тебе из горящего танка, извини за неровный почерк, так как пишу на спине убитого\n  товарища и раскаленная сталь капает за шиворот с горящей танковой башни...\"\n"], ["run_at", "2014-09-18 07:46:53.823398"], ["updated_at", "2014-09-18 07:46:53.823461"]]
   (0.5ms)  COMMIT
  • Вопрос задан
  • 2398 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Зайдите в консоль и посмотрите на какой-нибудь Delayed::Job.last. Есть там attempts_count > 1 или last_error?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы