¿Cómo configurar el mailer de acción (debo registrar dominio)?

Estoy creando una aplicación simple sin fines de lucro con Ruby on Rails. Tengo que configurar los siguientes ajustes para poder enviar correos electrónicos con Gmail:

Depot::Application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address:"smtp.gmail.com", port:587, domain:"domain.of.sender.net", authentication: "plain", user_name:"dave", password:"secret", enable_starttls_auto: true } end 

Soy completamente nuevo con estas cosas y no tengo idea de qué debo hacer exactamente.

  1. ¿Cómo llenar la configuración anterior si tengo una cuenta de gmail? ¿Necesito comprar un dominio y puedo comprarlo en google para usar la configuración anterior?
  2. ¿Es mejor configurar el servidor de correo en mi PC? Miré este tutorial pero, por lo que entiendo, todavía necesito comprar un dominio.

Además, como se dice aquí :

Configurar un servidor de correo electrónico es un proceso difícil que involucra una serie de progtwigs diferentes, cada uno de los cuales debe configurarse correctamente.

Debido a esto y mis malas habilidades, estoy buscando la solución más sencilla.

He leído el tutorial de Rails Action Mailer y tengo una idea de para qué se usan estos parámetros, pero las cosas que rodean a Gmail y al servidor de correo no están del todo claras.

La configuración de su progtwig de correo debe / puede definirse tanto en development como en production El propósito de esta configuración es que cuando configure esto cuando use el actionmailer estas opciones SMTP. Usted podría tener un correo simple como el siguiente:

Remitente

 class UserMailer < ActionMailer::Base default :from => DEFAULT_FROM def registration_confirmation(user) @user = user @url = "http://portal.herokuapp.com/login" mail(:to => user.email, :subject => "Registered") end end 

Controlador

  def create @title = 'Create a user' @user = User.new(params[:user]) if @user.save UserMailer.registration_confirmation(@user).deliver redirect_to usermanagement_path flash[:success] = 'Created successfully.' else @title = 'Create a user' render 'new' end end 

Entonces, lo que sucede aquí es que cuando se está utilizando la acción de create , esto UserMailer al remitente UserMailer Mirando el UserMailer anterior, utiliza ActionMailer como base. Siguiendo la configuración de SMTP que se muestra a continuación, que se puede definir en config/environments/production.rb y development.rb

Tendrías lo siguiente:

  config.action_mailer.default_url_options = { :host => 'portal.herokuapp.com' } config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => 'smtp.gmail.com', :port => 587, :domain => 'gmail.com', :user_name => 'EMAIL_ADDRESS@gmail.com', :password => 'pass', :authentication => 'login', :enable_starttls_auto => true } 

Si desea definir la configuración de SMTP en modo de desarrollo, debería reemplazar

 config.action_mailer.default_url_options = { :host => 'portal.herokuapp.com' } 

con

 config.action_mailer.default_url_options = { :host => 'IP ADDRESS HERE:3000' } 

Esta debería ser una explicación lo suficientemente completa como para comenzar en la dirección correcta.

La respuesta anterior funcionó para mí en desarrollo una vez que la cambié a

 authentication: 'plain' 

e incluido

 config.action_mailer.raise_delivery_errors = true 

en mi entorno de desarrollo.