发送邮件需要SMTP发件人地址。设置消息smtp_envelope_from,return_path,sender或from address

时间:2015-04-07 10:32:18

标签: ruby ruby-on-rails-4 spree spree-auth-devise spree-paypal-express

在Spree 3.0"邮件方法设置"默认不可用。

Rails版本4.2.0

使用" gem' spree_mail_settings',github:' spree-contrib / spree_mail_settings',分支:' 3-0-stable' " 在管理面板中,在配置菜单和#34;邮件方法设置"中生成一个链接。

完成所有配置。但是当点击"测试邮件"按钮它给出错误 "发送邮件需要SMTP发件人地址。设置消息smtp_envelope_from,return_path,sender或from address。"

1 个答案:

答案 0 :(得分:0)

我认为这个答案完全是黑客,但这就是我在测试中遇到这个问题的方法。我不得不将order_mailer.confirm_email方法中的'from_address'硬编码到我在admin部分输入的内容。这是我的代码:

  def confirm_email(order, resend = false)
    @order = order.respond_to?(:id) ? order : Spree::Order.find(order)
    subject = (resend ? "[#{Spree.t(:resend).upcase}] " : '')
    subject += "#{Spree::Store.current.name} #{Spree.t('order_mailer.confirm_email.subject')} ##{@order.number}"
    mail(to: @order.email, from: 'yourfromaddress@yourdomain.com', subject: subject)
  end

你会认为应该有一种简单的方法来为测试配置设置这个值,但我无法弄明白。