【问题标题】:How to Send Email in Development with Spree如何使用 Spree 在开发中发送电子邮件
【发布时间】:2014-03-25 23:10:21
【问题描述】:

我在开发环境中,我想通过我的控制台发送测试电子邮件。我让控制台运行良好,但它没有发送。

我转到 Spree 的邮件方法设置,这是我得到的:

我已经仔细检查了密码。我已经谷歌了。我不知道如何让这个东西工作。

关键问题:如何从开发环境中获取在 Spree 中工作的电子邮件?

我尝试过的事情Spree Mail Method is not working?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 email spree


    【解决方案1】:

    问题是您需要一个可以接收您的电子邮件的本地电子邮件服务器。要在开发中测试设置,请安装 mailcatcher gem,您将在开发中用作 SMTP 服务器,捕获所有传入邮件并将它们显示在 http://localhost:1080/:

    直接在终端运行

    gem 安装 mailcatcher

    然后在控制台中运行mailcatcher。一个玩具 SMTP 服务器将在端口 1025 上运行,捕获电子邮件并将它们显示在 HTTP 端口 1080 上。

    然后只需转到 spree 管理面板并进行配置。以下设置非常适合我,无需编写任何代码。

    点击send test mail后,我在本地主机上收到以下电子邮件:

    【讨论】:

    • 无论如何我可以看到 HMTL 版本吗?
    • 您可以打开电子邮件和网页的“查看源代码”。但这只是一种预感。您可以查看 mailcatcher 网页了解更多信息
    • @vedant1811 +1 .. 救了我的命.. 兄弟! :D
    【解决方案2】:

    Spree 实际上使用 Spree::MailMethod 类在图形界面中输入的设置覆盖了 ActionMailer 设置。从好的方面来说,您可以在管理界面中进行设置,但有一些意想不到的行为。

    我们维护着许多 Spree 商店,并且始终按照设置运行:

    Spree.config do |config|
      config.override_actionmailer_config = false
      config.mails_from = "no-reply@yourdomain.com"
    end
    

    这将允许您像在任何其他 Rails 应用程序中一样配置 ActionMailer: http://guides.rubyonrails.org/action_mailer_basics.html#example-action-mailer-configuration

    这是在 2.2.x 之后的下一个 Spree 版本中采用的标准程序。

    https://github.com/spree/spree/pull/4377 已将 Web 配置提取到自己的 gem 以保持向后兼容性。

    【讨论】:

    • 或者就用这个坏男孩:github.com/spree-contrib/spree_mail_settings:D
    • 我只是喜欢那个“发送测试邮件”按钮。除此之外,这是要走的路。
    • 得到文件config/initializers/spree.rb
    • @gmacdougall:我收到了这个错误/preferences/configuration.rb:66:in method_missing':未定义的方法override_actionmailer_config=' for #<Spree::AppConfiguration:0xbe2d5dc> (NoMethodError)我做错了什么?
    • 您不需要在较新版本的 Spree 中指定此选项。现在是默认设置。
    【解决方案3】:

    出现此问题是因为您没有本地电子邮件服务器来接收您的电子邮件。

    第 1 步: 第一步是安装 mailcatcher gem 以测试开发中的设置。

    您将使用它作为 SMTP 服务器来捕获所有传入的邮件并在http://localhost:1080/ 上显示它们:

    第 2 步: 只需在控制台中的终端“gem install mailcatcher”中运行即可。

    您会发现一个运行在端口 1025 上的 SMTP 服务器捕获电子邮件并在 HTTP 端口 1080 上显示它们

    第 3 步: 您会发现一个运行在 1025 端口上的 SMTP 服务器捕获电子邮件并在 HTTP 端口 1080 上显示它们

    添加行: gem 'spree_mail_settings',github:'spree-contrib/spree_mail_settings',分支:'master'

    然后运行: 捆绑

    第 4 步: 此外,转到“Spree 管理面板”并进行配置。这些设置将非常适合您,无需编写任何代码。

    然后点击“发送测试邮件

    第 5 步:

    您将在本地主机上收到一封电子邮件。

    现在你的问题解决了。

    【讨论】:

      【解决方案4】:

      Spree commerce 使用 ActionMailer 发送电子邮件。如果你想在开发模式下发送电子邮件,你应该在config/enviranments/development.rb文件中启用delivery_method

      只要设置这个变量config.action_mailer.delivery_method = :smtp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-03
        • 2011-08-21
        • 2019-01-09
        • 2012-05-17
        • 2018-05-31
        相关资源
        最近更新 更多