ruby-on-rails - que - ruby on rails tutorial
Errno:: ECONNREFUSED: Conexión rechazada-connect(2) para acción publicitaria (6)
He estado trabajando con rieles desde hace mucho tiempo. Ahora estoy enfrentando un pequeño problema en el ActionMailer. Deseo enviar un correo electrónico cuando el usuario se registre para confirmar su registro. Puedo enviar correos electrónicos en el modo de desarrollo pero no en el modo de producción.
la excepción Errno :: ECONNREFUSED: Conexión rechazada - connect (2) viene cada vez que se llama al método de entrega .
He escrito el siguiente código.
Mi configuración SMTP se ve:
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''
}
En el controlador, he escrito lo siguiente:
def confirm_registration_in_c
@user = User.find_by_email([email protected])
if @user
UserMailer.confirm_registration(@user).deliver
end
end
En mi 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
Puedo enviar correos electrónicos en el modo de desarrollo en mi host local, pero no puedo enviar el correo electrónico en el servidor dedicado.
puede alguien ayudarme por favor?
Acabo de rastrear un problema similar al intentar implementar WordPress con Capistrano.
cap aborted! Errno::ECONNREFUSED: Connection refused - connect(2) for "{my-ip-address}" port {my-ssh-port}
También obtendría este error similar:
Tasks: TOP => git:create_release (See full trace by running task with --trace) The deploy has failed with an error: #<Errno::ECONNREFUSED: Connection refused - connect(2) for "my-ip-address" port {my-port}>
Resultó ser un problema con las sesiones simultáneas de SSH ya que mi servidor ejecuta Fail2Ban. Para resolver eso, simplemente hice lo siguiente:
Edite la cárcel que contiene configuraciones SSH
$ sudo nano /etc/fail2ban/jail.local
busque [SSH] y establezca enabled = false
luego encuentra [ssh-ddos] y establece enabled = false
Recuerde reiniciar Fail2Ban después de los cambios y abrir-ssh (si eso es lo que usa)
$ sudo service fail2ban reload
$ sudo /etc/init.d/ssh reload
Vale la pena señalar que la conexión se rechazaría en diferentes pasos (tareas) en la implementación. Por ejemplo, después de un reinicio y un bundle exec cap production deploy:check
rápido de bundle exec cap production deploy:check
todo estuvo bien. Luego traté de implementar y recibí el mismo error, pero durante la ejecución de una tarea diferente. También uso UFW que deshabilité y volví a habilitar sin problemas. UFW no fue la causa del problema anterior.
Tuve un problema similar después de resolver esto. Fue un problema con los permisos de directorio current
. Eso está aquí.
Asegúrese de haber configurado su puerto correctamente. Cambié de Gmail en desarrollo (puerto 587) al envío desde mi servidor local en producción y obtuve este error hasta que corregí el puerto al que usa mi servidor (puerto 25).
En mi situación, me encontré con problemas similares cuando estaba tratando de hacer a través de un tutorial de la aplicación Rails de envío de correo electrónico, los registros de Heroku me seguían contando eso
......
Errno::ECONNREFUSED (Connection refused - connect(2) for "localhost" port 25):
......
Después de comparar mi código con el código del autor, descubrí que no había configurado mis configuraciones de ActionMailer en el archivo config / environments / production.rb .
Luego me di cuenta de que acababa de configurar mi config / environments / development.rb para el envío de correo electrónico, pero no lo había hecho para mi config / environments / production.rb .
Entonces puede verificarlo cuando el comportamiento de su aplicación difiere entre desarrollo y producción.
Hay otra razón para este error:
Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 25
Debería examinarse el servicio SENDMAIL en su servidor:
- ¿SENDMAIL está instalado?
- ¿Se está ejecutando SENDMAIL?
Tuve este error debido al SENDMAIL detenido.
¡Buena suerte!
Mi problema no es idéntico a esta pregunta, pero creo que muchos encontrarían este hilo a través de google.
Si utiliza un servicio SMTP externo como sendgrid y ha configurado ActionMailer en consecuencia, aún así le da este error:
Errno :: ECONNREFUSED: conexión rechazada - connect (2) para el puerto "localhost" 25
Puede pasar el hash de configuración con la clave String, que se ignoran. ¡Las llaves deben ser symbols !
Esto puede suceder si se deserializa, lo que hice fue asegurar que las claves fueran símbolos:
config.action_mailer.smtp_settings = get_smtp_setting.symbolize_keys
para producción no puedes escribir
config.action_mailer.default_url_options = { :host => "localhost:3000" }
agregar URL de producción para el host, como,
config.action_mailer.default_url_options = { :host => "http://www.yourdomain.com" }