2017-04-26 5 views
0

본인은이 양식에 따라 '문의하기'양식 및 우편 발송자를 작성했습니다. 필자는 양식에 Messaged Received가 표시되지만 Span 폴더가 아닌 이메일을 수신하지는 못합니다. 나는 사용자 인증을 위해 Devise와 잘 작동하는 sendgrid를 가지고있어서 그 양상이 작동하고 있음을 안다.레일즈 5 문의 heroku를 통해 sendgrid를 사용하여 전자 메일을 보내지 않는 양식

메시지/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 이벤트를 트리거하는 것처럼 보이지 않습니다. 귀하의 프로세스를 올바르게 이해하고 있다면 작성 메소드는 메일러 및 메시지에 .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' –