使用Shoppe gem + Rails发送电子邮件

时间:2015-06-07 19:47:54

标签: ruby-on-rails ruby-on-rails-4 gem actionmailer

尝试使用Shoppe gem发送已接受的订单电子邮件通知。

production.rb

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => 587,
      :user_name            => ENV['chbrown1293'],
      :password             => ENV['*******'],
      :authentication       => "plain",
      :enable_starttls_auto => true
  }

订购控制器

  def payment
    gon.client_token = generate_client_token
    @order = Shoppe::Order.find(current_order.id)
    @result = Braintree::Transaction.sale(
        amount: current_order.total,
        payment_method_nonce: params[:payment_method_nonce])
    if @result.success?
      Shoppe::OrderMailer.accepted(@order)
      current_order.destroy
      redirect_to root_url, notice: "Payment successful, congratulations!"
    end
  end

不确定我错过了什么,但可能很明显! (我以前从未设置过邮件 - 我确实是一个菜鸟:))

谢谢!

2 个答案:

答案 0 :(得分:1)

我没有使用过Shoppe,但在ActionMailer中,我们必须调用方法deliver才能发送电子邮件。尝试更改

Shoppe::OrderMailer.accepted(@order)

Shoppe::OrderMailer.accepted(@order).deliver

答案 1 :(得分:1)

如果我没有弄错的话,Shoppe在它的订单控制器下有一个自动邮件内置到应用程序的gemfile中。 (检查github repo确认)

要访问它,您应该使用邮件程序信息设置生产配置文件。

还要确保在“/ shoppe / settings”

上设置邮件程序

只要您购买,就应该收到一封电子邮件。