【问题标题】:An SMTP From address is required to send a message. Set the message smtp_envelope_from, return_path, sender, or from address发送邮件需要 SMTP From 地址。设置消息 smtp_envelope_from、return_path、sender 或 from 地址
【发布时间】:2015-04-07 10:32:17
【问题描述】:

在 Spree 3.0 中“邮件方式设置”默认不可用。

Rails 版本 4.2.0

使用 "gem 'spree_mail_settings', github: 'spree-contrib/spree_mail_settings', branch: '3-0-stable'" 在配置菜单“邮件方法设置”中生成一个链接”。

所有配置完成。但是当点击“测试邮件”按钮时,它给出了错误 “发送邮件需要 SMTP From 地址。设置邮件 smtp_envelope_from、return_path、sender 或 from 地址。”

【问题讨论】:

  • 我建议不要使用 spree_mail_settings 并使用 ActionMailer 配置您的邮件。 spree_mail_settings 用于旧版本的 Spree,由于这样的混淆而从主代码库中删除。我的猜测是 spree_mail_settings 尚未针对 Rails 4.2 进行更新。如果您打算使用该项目,则应在该项目上提出问题。

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


【解决方案1】:

我认为这个答案完全是 hack,但这就是我在测试中解决这个问题的方式。我不得不将 order_mailer.confirm_email 方法中的“from_address”硬编码为我将在管理部分输入的内容。这是我的代码:

  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

你会认为应该有一种简单的方法来为测试配置设置这个值,但我想不通。

【讨论】:

    猜你喜欢
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多