如何使用Spree在开发中发送电子邮件

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

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

BenMorganIO的狂欢邮件方法设置

我已经仔细检查了密码。 我用谷歌搜索了它。 我无法弄清楚如何使这个东西工作。

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

我尝试的事情 : 狂欢邮件方法不起作用?

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

只需在终端运行

gem安装mailcatcher

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

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

在此处输入图像描述

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

在此处输入图像描述

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,以保持向后兼容性。

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

步骤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’

然后运行: bundle

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

然后单击“ 发送测试邮件

第5步:

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

现在你的问题解决了。

狂欢商务使用ActionMailer发送电子邮件。 如果要在开发模式下发送电子邮件,则应在config/enviranments/development.rb文件中启用delivery_method

只需设置此变量config.action_mailer.delivery_method = :smtp