ruby on rails - Rails EOFError(final del archivo alcanzado) al guardar un usuario de dispositivo
ruby-on-rails ruby-on-rails-3 (5)
Recibo este error en producción cuando intento crear un usuario (estoy usando la gema de dispositivo).
EOFError (end of file reached):
Encontré este problema antes y se debió a mi configuración de smtp usando el correo zoho.
Creo que mi configuración a continuación es lo que solucionó el problema:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.zoho.com",
:port => 465,
:domain => ''example.com'',
:user_name => ''[email protected]'',
:password => ''password'',
:authentication => :login,
:ssl => true,
:tls => true,
:enable_starttls_auto => true
}
Ahora hemos agregado SSL al sitio y creo que eso es lo que está causando este error ahora.
¿Alguien tiene alguna idea de este error o la configuración de smop de correo zoho con SSL?
¡También! Cometí este error adicional y tuve el mismo problema: usé mi propio dominio en lugar del dominio del servidor de correo para la variable "dominio".
Su variable de entorno debe ser:
GMAIL_DOMAIN=gmail.com
O para el ejemplo anterior:
:domain => ''gmail.com'',
Aquí está una llamada gema pony
trabajo.
Pony.mail({
:to => ''[email protected]'',
subject: "Pony ride",
body: "Awesome!",
from: "[email protected]", # this MUST be the sending Zoho email.
:via => :smtp,
:via_options => {
:address => ''smtp.zoho.com'',
:port => ''465'',
:enable_starttls_auto => true,
ssl: true,
:user_name => ''[email protected]'', # MUST be identical to :from.
:password => ''yourStrongPw'',
:authentication => :login,
}
})
Este error fue causado por no tener mi config / initializers / devise.rb especificando la dirección de correo electrónico correcta para config.mailer_sender
.
He encontrado una causa para el error aquí => https://.com/a/40354121/6264112
Pero esto no resolvió mi problema. Si bien no recibía ningún error, mis correos electrónicos aún no funcionaban a través de Zoho, así que encontré otra solución que funciona perfectamente para mis necesidades ...
1) Conecta Zoho a gmail utilizando SMTP. Configuré mi correo electrónico zoho como un alias para mi cuenta personal de gmail para que los correos electrónicos de zoho se reenvíen a gmail y pueda responderlos EN Gmail DESDE mi dirección de correo electrónico de zoho. Esto debe hacerse de todos modos para que nunca tenga que iniciar sesión en zoho. Sólo haz todo el correo electrónico desde gmail.
2) Conecta ActionMailer a la cuenta de gmail NO zoho.
config.action_mailer.smtp_settings = {
:address => ''smtp.gmail.com'',
:port => 587,
:user_name => ENV["gmail_username"],
:password => ENV["gmail_password"],
:authentication => :plain,
:enable_starttls_auto => true
}
Ahora, solo necesito especificar los valores de entrada y salida en el correo como:
def notify_admin (message_details)
@message_details = message_details
mail(to: "[email protected]", subject: "Contact form filled out by: " + message_details[:name], from: message_details[:email])
end
Esto funciona cuando quiero enviarme correos electrónicos como en el ejemplo anterior cuando alguien envía el formulario de contacto.
TAMBIÉN funciona cuando deseo enviar un correo electrónico desde mi dominio, por ejemplo, cuando llenan el imán principal. Todo lo que hice fue cambiar a: y desde: direcciones.
Tuve este problema, lo intenté todo y todavía no podía entender cuál era el problema.
Seamos realistas, es un mensaje SH! T. Lo que encontré a pesar de que estaba ejecutando mi aplicación de Rails localmente con POW y en realidad es un error de POW.
Cuando ejecuto el rails server
y hago lo mismo que causó el error, recibí el mensaje de error real y pude encontrar que no había configurado mi controlador correctamente