2017-04-26 54 views
0

我一直在關注這個博客文章關於創建一個'聯繫我'的形式和郵件。我已經足夠遠了,我的表單顯示已收到郵件,但我從來沒有收到電子郵件,也沒有收到郵件。我有sendgrid工作正常與設計用戶身份驗證,所以我知道該方面工作。Rails 5聯繫我不使用發送電子郵件通過heroku發送電子郵件

消息/ 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

它看起來不像我,你實際上是觸發控制器中的發送事件。如果我正確理解你的過程,你的創建方法應該在郵件和消息上有.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 
+0

我怎麼錯過了!? –

+0

電子郵件剛剛過來!感謝您的發現。我實際上使用了: 'MessageMailer.contact_me(@message).deliver_now' –