Why are emails not sending in my rails app? Internal Server Error) Ch 20. Learn Rails tutorial by Daniel Kehoe

167 Views Asked by At

I am on Ch 20 of the Learn Rails tutorial 'Send Mail'. There is a create contact form and a notification email is supposed to be sent to my email address. I have set up configuration as per the book and the email is being generated correctly i the terminal log. however the email never sends to my email inbox. I am getting an internal server error. see below for details.

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: "[email protected]"

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

end

i also have my email address set in the config/secrets.yml file like so :

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

I have also added the following to my .bashrc file as per the early chater of the book about configuration:

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"

so as far as i see i have set everything up according to the tutorial but the mail is not sending. any ideas why?

1

There are 1 best solutions below

8
Rohan On

From the above share code description and log trace, it seems like mailer settings is not configured properly.

Note: You need to set the mailer settings based on the environment on which you are working(eg: development.rb)

Follow the below given link for the configuration of mailer settings:

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