Я не совсем уверен, что я делаю неправильно.Rails Контактный формуляр, Action_mailer не отправляет e-mail
Я вижу, что очень много людей имеют схожие проблемы: Rails contact form not working, Rails 3 Contact Form, undefined method?, Contact Us form in Rails 3 и т.д.
Даже жесткая я вижу, что очень многие считают это очень просто - построить контактную форму.
Been корыто популярных руководств ActionMailer: http://guides.rubyonrails.org/action_mailer_basics.html, http://railscasts.com/episodes/206-action-mailer-in-rails-3
Я на самом деле не разработчик, так что я нахожу это довольно запутанным.
В любом случае, мне нужно создать простую форму контакта, чтобы просто отправить сообщение в виде электронной почты для моей учетной записи электронной почты. Я не хочу хранить сообщения в своем db.
Вот мой код:
/app/models/message.rb
class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :email, :content
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
приложение \ Контроллеры \ messages_controller.rb
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
MessageMailer.send(@message).deliver
flash[:notice] = "Message sent! Thank you for contacting us."
redirect_to root_url
end
end
/app/mailer/message_mailer.rb
class MessageMailer < ActionMailer::Base
default :to => "[email protected]"
def send(message)
@message = message
mail(:subject => " Test ", :from => @message.email) do |format|
format.text
end
end
end
Приложение/просмотров/сообщений/new.html.erb
<h1> "Contact Us" </h1>
<%= form_for @message do |f| %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :content, "Message" %><br />
<%= f.text_area :content %>
</p>
<p><%= f.submit "Send Message" %></p>
<% end %>
приложение/просмотров/message_mailer/sent.text.erb
Message sent by <%= @message.name %>
<%= @message.content %>
и development.rb
N1::Application.configure do
# Don't care if the mailer can't send
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
end
Я не» t видеть ошибки в файле журнала, и я не получаю никаких сообщений об ошибках. Письмо просто не доставлено.
Можете ли вы рассказать мне, что я делаю неправильно?
Спасибо!
Это похоже на: http://stackoverflow.com/questions/10991932/sending-confirmation-emails-to-registered-users-in-ror-app-via-localhost/10994387 –