为什么电子邮件不能在我的rails应用程序中发送?内部服务器错误)第20章.Daniel Kehoe的学习Rails教程

时间:2018-03-13 07:25:59

标签: ruby-on-rails railsapps

我在学习Rails教程'发送邮件'的第20章。有一个创建联系表单,通知邮件应该发送到我的电子邮件地址。我按照本书设置了配置,并且终端日志正确生成了电子邮件。但是电子邮件从未发送到我的电子邮件收件箱。我收到内部服务器错误。请参阅下面的详细信息。

Completed 500 Internal Server Error in 30831ms



Net::OpenTimeout (execution expired):

app/controllers/contacts_controller.rb:10:in `create'

contacts_controller.rb

class ContactsController < ApplicationController

  def new
  @contact = Contact.new
  end

  def create
    @contact = Contact.new(secure_params)
    if @contact.valid?
      UserMailer.contact_email(@contact).deliver_now
      flash[:notice] = "Message sent from #{@contact.name}."
      redirect_to root_path
    else
      render :new
    end
  end

  private
    def secure_params
      params.require(:contact).permit(:name, :email, :content)
    end
end

user_mailer.rb

class UserMailer < ApplicationMailer
  default from: "do-not-reply@example.com"

  def contact_email(contact)
    @contact = contact
    mail(to: Rails.application.secrets.owner_email, from: @contact.email, :subject => "Website Contact")
  end

end

我也在config / secrets.yml文件中设置了我的电子邮件地址,如下所示:

owner_email: <%= ENV["my_email_address@*******.com"] %>

我还根据关于配置的书的早期章节将以下内容添加到我的.bashrc文件中:

export SENDGRID_USERNAME="user_name"
export SENDGRID_PASSWORD="password"
export MAILCHIMP_API_KEY="long_random_api_key_here"
export MAILCHIMP_LIST_ID="list_id_here"
export OWNER_EMAIL="**********@*********.com"

因此,据我所知,我根据教程设置了一切,但邮件没有发送。任何想法为什么?

1 个答案:

答案 0 :(得分:0)

从上面的共享代码说明和日志跟踪中,似乎没有正确配置邮件程序设置。

注意:您需要根据您工作的环境设置邮件程序设置(例如:development.rb)

按照以下指定的链接配置邮件设置:

http://guides.rubyonrails.org/action_mailer_basics.html#example-action-mailer-configuration