Как настроить почтовик действий (я должен зарегистрировать домен)?

Я создаю простое некоммерческое приложение с Ruby on Rails. Я должен настроить следующие параметры, чтобы можно было отправлять электронные письма с помощью 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

Я совершенно новичок в этом деле и понятия не имею, что именно мне следует делать.

  1. Как заполнить настройки выше, если у меня есть учетная запись Gmail? Нужно ли покупать домен и можно ли его купить у Google, чтобы использовать настройки выше?
  2. Лучше настроить почтовый сервер на моем ПК? Я посмотрел этот учебник, но, насколько я понимаю, мне все еще нужно купить домен.

Также, как здесь сказано:

Настройка почтового сервера - сложный процесс, в котором задействовано несколько различных программ, каждая из которых должна быть правильно настроена.

из-за этого и моих плохих навыков я ищу самое простое решение.

Я прочитал учебник по rails action mailer и у меня есть представление о том, для чего используются эти параметры, но все, что касается Gmail и почтового сервера, не совсем понятно.

2 ответа

Решение

Конфигурация вашего почтовика должна / может быть определена в обоих development а также production цель этой конфигурации заключается в том, что при настройке этого при использовании actionmailer эти опции SMTP будут использованы. Вы можете иметь простой почтовик, как показано ниже:

рассылка

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

контроллер

 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

Так что здесь происходит, что когда create действие используется это увольняет почтовик UserMailer Глядя на вышеупомянутый UserMailer, он использует ActionMailer в качестве основы. После настройки SMTP, показанной ниже, которая может быть определена как в config/environments/production.rb и развитие.rb

У вас будет следующее:

  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
  }

Если вы хотите определить настройки SMTP в режиме разработки, вы должны заменить

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

с

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

Это должно быть достаточно подробное объяснение, чтобы толкнуть вас в правильном направлении.

Приведенный выше ответ сработал для меня, когда я изменил его на

authentication: 'plain' 

и включены

config.action_mailer.raise_delivery_errors = true 

в моей среде разработки.

Другие вопросы по тегам