Я долго работал с рельсами. Теперь я сталкиваюсь с небольшой проблемой в ActionMailer. Я хочу отправить электронное письмо, когда пользователь зарегистрируется, чтобы подтвердить его регистрацию.
Я могу отправить электронную почту в режиме разработки, но где не в режиме производства.
исключение Errno:: ECONNREFUSED: соединение отклонено - соединение (2) приходит каждый раз, когда вызывается метод доставлять.
Я написал следующий код.
Моя конфигурация SMTP выглядит:
config.action_mailer.default_url_options = {: host = > " localhost: 3000"}
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
:openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE,
:ssl => true,
:enable_starttls_auto => true, #this is the important stuff!
:address => 'smtp.xxxx.xxx',
:port => xxx,
:domain => 'xxxxxx',
:authentication => :plain,
:user_name => '[email protected]',
:password => 'xxxxxxxxx'
}
В контроллере я написал следующее:
def confirm_registration_in_c
@user = User.find_by_email([email protected])
if @user
UserMailer.confirm_registration(@user).deliver
end
end
В моем user_mailer.rb:
class UserMailer < ActionMailer::Base
default from: "[email protected]"
def confirm_registration(user)
@user = user
@user_name = @user.name
email = @user.email
mail(:to => email, :subject => "Reset your password")
end
end
Я могу отправить электронную почту в режиме разработки на моем локальном хосте, но я не могу отправить электронное сообщение на выделенный сервер.
Кто-нибудь может мне помочь?