Rails 5 Форма для связи со мной не отправляет электронную почту с помощью sendgrid через heroku
Я следил за этой записью в блоге, касающейся создания формы и почтовой программы "свяжитесь со мной". У меня достаточно далеко, чтобы моя форма отображала сообщение Messaged Received, но я никогда не получаю письмо, в том числе и в папке Span. У меня есть sendgrid, хорошо работающий с Devise для аутентификации пользователей, поэтому я знаю, что этот аспект работает.
Сообщения / new.html.erb
<%= form_for @message, url: create_message_url do |f| %>
<%= notice %>
<%= @message.errors.full_messages.join(', ') %>
<%= f.text_field :name, placeholder: 'name' %>
<%= f.email_field :email, placeholder: 'email' %>
<%= f.text_area :body, placeholder: 'body' %>
<%= f.submit 'Send' %>
<% end %>
Контроллеры / messages_controller.rb
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new message_params
if @message.valid?
redirect_to new_message_url, notice: "Message received, thanks!"
else
render :new
end
end
private
def message_params
params.require(:message).permit(:name, :email, :body)
end
end
отправители / message_mailer.rb
class MessageMailer < ApplicationMailer
def contact_me(message)
@body = message.body
mail to: "<mydomainemail>", from: message.email
end
end
Тестирование не выдает ошибок, и я также могу предварительно просмотреть электронную почту.
Что-то еще я пропускаю?
1 ответ
Мне не кажется, что вы на самом деле запускаете событие send в вашем контроллере. Если я правильно понимаю ваш процесс, ваш метод create должен иметь метод.deliver в почтовой программе и в сообщении.
def create
@message = Message.new message_params
if @message.valid?
MessageMailer.contact_me(@message).deliver <-- This
redirect_to new_message_url, notice: "Message received, thanks!"
else
render :new
end
end