如何禁用 Rails 上的特定邮件程序?

How to disable a specific mailer on Rails?

所以我正在使用 Shoppe 1.0.7 构建一个电子商务平台。

基本上,我希望我的客户收到一封电子邮件,其中包含他们的订单确认、他们的商品清单等,所以我构建了一个邮件程序来做到这一点。

当我开始工作时,我发现 Shoppe 实际上会发送自己的确认电子邮件,但这些电子邮件比我的更通用,也没有提供更多信息(而且它们是英文的,我需要另一种语言的).事实上,我的客户在下订单时实际上会收到两封电子邮件,这显然是不可取的。

如何在不禁用整个 Shoppe(我显然需要)的情况下禁用 Shoppe 的邮件程序?

我对Shoppe不熟悉,但我第一眼看不到邮件周围的任何配置选项。有four actions in the OrderMailer and they only seem to be used here and here。一个选项是打开邮件程序 class 并重新定义方法。

module Shoppe
  class OrderMailer
    def received(order)
      true
    end
  end
end

像这样打猴子补丁并不是最好的解决方案,更好的选择是使用动作邮件 interceptor。或者,您可以查看是否在他们的回购协议中提出了任何问题,如果没有提交,或者提交允许配置邮件的 PR。可能是推动上游的一个很好的功能。