Как настроить почтовик действий (я должен зарегистрировать домен)?
Я создаю простое некоммерческое приложение с 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
Я совершенно новичок в этом деле и понятия не имею, что именно мне следует делать.
- Как заполнить настройки выше, если у меня есть учетная запись Gmail? Нужно ли покупать домен и можно ли его купить у Google, чтобы использовать настройки выше?
- Лучше настроить почтовый сервер на моем ПК? Я посмотрел этот учебник, но, насколько я понимаю, мне все еще нужно купить домен.
Также, как здесь сказано:
Настройка почтового сервера - сложный процесс, в котором задействовано несколько различных программ, каждая из которых должна быть правильно настроена.
из-за этого и моих плохих навыков я ищу самое простое решение.
Я прочитал учебник по 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
в моей среде разработки.