Как отправить письмо в разработке с помощью Spree

Я нахожусь в среде разработки и хочу отправлять тестовые письма через мою консоль. Я получил консоль хорошо, но не отправляет.

Я захожу в настройки метода почты Spree и вот что я получил:

Настройки метода Spree Mail для BenMorganIO

Я дважды проверил пароль. Я чертовски погуглил. Я не могу понять, как заставить эту вещь работать.

Ключевой вопрос: как заставить электронную почту работать в Spree из среды разработки?

Вещи, которые я пробовал: Spree Mail Method не работает?

4 ответа

Решение

Проблема в том, что вам нужен локальный почтовый сервер, который может получать ваши письма. Чтобы проверить настройки в разработке, установите гем mailcatcher, который вы будете использовать в качестве SMTP-сервера в разработке, перехватывая все входящие письма и отображая их на http://localhost:1080/:

Просто беги в терминал

gem install mailcatcher

затем беги mailcatcher в консоли. На порту 1025 будет запущен игрушечный SMTP-сервер, который перехватывает электронные письма и переносит их на HTTP-порт 1080.

Затем просто зайдите в админ-панель spree и настройте ее. Следующие настройки прекрасно работают для меня без написания кода.

После того, как я нажал на send test mail Я получил следующее письмо на мой локальный хост:

Spree фактически переопределяет настройки ActionMailer настройками, введенными в графический интерфейс с помощью класса Spree::MailMethod. С положительной стороны, вы можете установить вещи в интерфейсе администратора, с недостатком нескольких неожиданных действий.

Мы поддерживаем много магазинов Spree и всегда работаем с настройками:

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

Это позволит вам настроить ActionMailer так же, как и в любом другом приложении Rails: http://guides.rubyonrails.org/action_mailer_basics.html

Это принимается в качестве стандартной процедуры для следующего выпуска Spree после 2.2.x.

https://github.com/spree/spree/pull/4377 извлек веб-конфигурацию в свой гем, чтобы поддерживать обратную совместимость.

Spree Commerce использует ActionMailer для отправки электронных писем. Если вы хотите отправлять электронные письма в режиме разработки, вы должны включить delivery_method в config/enviranments/development.rb файл.

Просто установите эту переменную config.action_mailer.delivery_method = :smtp

Эта проблема возникает из-за того, что у вас нет локального почтового сервера для получения ваших писем.

Шаг 1: Первым шагом было бы установить гем mailcatcher, чтобы протестировать установку в разработке.

Вы будете использовать его как SMTP-сервер, чтобы перехватывать все входящие письма и отображать их на http://localhost:1080/:

Шаг 2: Просто запустите в консоли "gem install mailcatcher" в консоли.

Вы найдете SMTP-сервер, работающий на порту 1025, который перехватывает электронные письма и отображает их на HTTP-порту 1080.

Шаг 3: Вы найдете SMTP-сервер, работающий на порту 1025, который перехватывает электронные письма и отображает их на HTTP-порту 1080.

Добавьте строку: gem 'spree_mail_settings', github: 'spree-contrib / spree_mail_settings', ветвь: 'master'

Затем запустите: bundle

Шаг 4: Далее перейдите в "Панель администратора Spree" и настройте его. Эти настройки будут работать идеально для вас без написания кода.

Затем нажмите "Отправить тестовое письмо"

Шаг 5:

Вы получите электронное письмо на ваш локальный хост.

Теперь ваша проблема решена.

Другие вопросы по тегам