Как отправить письмо в разработке с помощью Spree
Я нахожусь в среде разработки и хочу отправлять тестовые письма через мою консоль. Я получил консоль хорошо, но не отправляет.
Я захожу в настройки метода почты Spree и вот что я получил:
Я дважды проверил пароль. Я чертовски погуглил. Я не могу понять, как заставить эту вещь работать.
Ключевой вопрос: как заставить электронную почту работать в 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:
Вы получите электронное письмо на ваш локальный хост.
Теперь ваша проблема решена.