When I run my mailer in development mode, I get the following error:
Net::ReadTimeout in SchoolApplicationsController#create
Here is the controller method that is getting the timeout
  def create
    @school_application = SchoolApplication.new(school_application_params)
     @school_application.program_cost =    @school_application.calculate_cost_to_charge(params[:school_application][:program], params[:school_application][:duration])
    if @school_application.save
      NotificationsMailer.send_application(@school_application).deliver
      redirect_to application_path(@school_application.id)
    else  
      Rails.logger.debug(@school_application.errors.full_messages)
          @school_application.errors.full_messages.each do |msg|
        flash.now[:error] = msg
      end
      render action: "new"
    end
  end
I am positive the error is being caused by the NotificationsMailer call because when
I comment it out, I no longer get the error.
Here is my mailer, and the settings:
class NotificationsMailer < ActionMailer::Base
  default :from => "[email protected]"
  default :to => "[email protected]"
  def send_application(application)
    @application = application 
    mail(:subject => "New Application")
  end
end
Here is my environments/development.rb smtp settings:
Fls::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb.
  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false
  # Do not eager load code on boot.
  config.eager_load = false
  # Show full error reports and disable caching.
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false
  # Don't care if the mailer can't send.
  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log
  # Raise an error on page load if there are pending migrations
  config.active_record.migration_error = :page_load
  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
  address:              'secure3309.hostgator.com',
  port:                 465,
  domain:               'slf.net',
  ssl: true,
  user_name:            ENV['slf_username'],
  password:             ENV['slf_password'],
  authentication:       'plain',
  enable_starttls_auto: true  }
end
When I write ENV['slf_username'] in the Rails console I get the right value. Same with the password. The username is in the format [email protected]. Is that correct or is the right format just "user" and the domain is implied from domain parameter?
After reading this post I took another look at my smtp settings and added
tls: true 
changed 
   port: 465 to port: '465' as I noticed that most people write it as a string. Also Similarly changed the string "plain" to the symbol :plain
I faced the similar issue when i connect the smtp mail to qq mail(business mail). I updated my settings by following the post as like below:
config.action_mailer.smtp_settings = {
address:              'smtp.exmail.qq.com',
port:                 '465',
domain:               'groobusiness.com',
user_name:            ENV['GMAIL_USER_NAME'],
password:             ENV['GMAIL_PASSWORD'],
authentication:       :plain,
enable_starttls_auto: true,
openssl_verify_mode:  'none',
ssl:                   true,
tls:                   true
}
And the issue got solved. Hope it might be helpful for someone who is facing this issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With