【问题标题】:Mailer does net send mails in engineMailer 确实在引擎中发送邮件
【发布时间】:2014-02-19 18:01:06
【问题描述】:

我正在为一个简单的电子商务系统在 rails 4 中编写一个时事通讯引擎。 为此,我在\app\mailers\aecs_newsletter\newsletter_mailer.rb 为我的引擎写了这个邮件:

module AecsNewsletter
    class NewsletterMailer < ::ActionMailer::Base

        default from: 'newsletter@ecommerce.de'

        def send_newsletter_to_subscribers(subscribers, newsletter)
            subscribers.each do |subscriber|
                @email = subscriber.email
                @newsletter = newsletter
                mail(to: @email, subject: newsletter.subject, template_name: 'newsletter')
            end
        end

    end
end

我从::ActionMailer::Base 继承来获取主应用程序的邮件配置。此配置运行良好(通过设计的确认邮件测试)。

但是当我在引擎的控制器中执行函数send_newsletter_to_subscribers 时,函数结束时没有错误,也没有发送邮件。

这里是方法调用的日志:

Started GET "/newsletters/admin/1/send_newsletter" for x.x.x.x at 2014-01-28 13:19:47 +0100
Processing by AecsNewsletter::Admin::NewslettersController#send_newsletter as HTML
  Parameters: {"id"=>"1"}
  User Load (0.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
   (0.0ms)  begin transaction
  SQL (0.0ms)  UPDATE "users" SET "updated_at" = ? WHERE "users"."id" = 1  [["updated_at", Tue, 28 Jan 2014 12:19:47 UTC +00:00]]
   (203.1ms)  commit transaction
  Userrole Load (0.0ms)  SELECT "userroles".* FROM "userroles" WHERE "userroles"."id" = ? ORDER BY "userroles"."id" ASC LIMIT 1  [["id", 1]]
  AecsNewsletter::Newsletter Load (0.0ms)  SELECT "aecs_newsletter_newsletters".* FROM "aecs_newsletter_newsletters" WHERE "aecs_newsletter_newsletters"."id" = ? LIMIT 1  [["id", "1"]]
  AecsNewsletter::Subscriber Load (0.0ms)  SELECT "aecs_newsletter_subscribers".* FROM "aecs_newsletter_subscribers"
  Rendered /aecs_newsletter/app/views/aecs_newsletter/newsletter_mailer/newsletter.html.erb (0.0ms)
  Rendered /aecs_newsletter/app/views/aecs_newsletter/newsletter_mailer/newsletter.text.erb (0.0ms)
[...]
Redirected to http://x.x.x.x:3000/newsletters/admin/1
Completed 302 Found in 547ms (ActiveRecord: 375.0ms)

所以函数渲染了视图,但没有发送邮件。 我认为,我没有继承邮件配置的权利。但是我可以通过哪种方式使用主应用程序邮件配置?

有人可以解决我的问题吗? 谢谢!

【问题讨论】:

    标签: ruby-on-rails email ruby-on-rails-4 rails-engines


    【解决方案1】:

    您尚未要求交付。添加 .deliver

    module AecsNewsletter
        class NewsletterMailer < ::ActionMailer::Base
    
            default from: 'newsletter@ecommerce.de'
    
            def send_newsletter_to_subscribers(subscribers, newsletter)
                subscribers.each do |subscriber|
                    @email = subscriber.email
                    @newsletter = newsletter
                    mail(to: @email, subject: newsletter.subject, template_name: 'newsletter').deliver
                end
            end
    
        end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 2018-01-18
      相关资源
      最近更新 更多