Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5联系人表单不通过heroku使用sendgrid发送电子邮件_Ruby On Rails_Heroku_Sendgrid_Sendgrid Ruby - Fatal编程技术网

Ruby on rails Rails 5联系人表单不通过heroku使用sendgrid发送电子邮件

Ruby on rails Rails 5联系人表单不通过heroku使用sendgrid发送电子邮件,ruby-on-rails,heroku,sendgrid,sendgrid-ruby,Ruby On Rails,Heroku,Sendgrid,Sendgrid Ruby,我一直在关注这篇关于创建“联系我”表单和邮件的博文。我的表单显示Messaged Received,但我从来没有收到过电子邮件,Span文件夹中也没有。我的sendgrid与Desive的用户身份验证功能配合得很好,所以我知道该功能正在工作 Messages/new.html.erb 控制器/消息\u controller.rb mailers/message_mailer.rb 测试不会抛出错误,我也可以预览电子邮件ok 还有什么我遗漏的吗?在我看来,您并不是在实际触发控制器中的发送事件。如果

我一直在关注这篇关于创建“联系我”表单和邮件的博文。我的表单显示Messaged Received,但我从来没有收到过电子邮件,Span文件夹中也没有。我的sendgrid与Desive的用户身份验证功能配合得很好,所以我知道该功能正在工作

Messages/new.html.erb

控制器/消息\u controller.rb

mailers/message_mailer.rb

测试不会抛出错误,我也可以预览电子邮件ok


还有什么我遗漏的吗?

在我看来,您并不是在实际触发控制器中的发送事件。如果我正确理解了您的流程,那么您的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

我怎么会错过呢!?电子邮件刚刚发送过来!谢谢你发现了。我实际上使用了:MessageMailer.contact_me@message.deliver_now
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
class MessageMailer < ApplicationMailer
  def contact_me(message)
    @body = message.body

    mail to: "<mydomainemail>", from: message.email
  end
end
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