2009-11-24 51 views
23

Intento aprender sobre el correo electrónico en los rieles. Estoy desarrollando algo en localhost. ¿Es posible enviar un correo electrónico desde localhost para decir una cuenta de correo normal como gmail? ¿Tengo una instalación de un servidor de correo? Acabo de obtener una instalación de rieles estándar en este momento para el desarrollo.enviar correo electrónico desde localhost

Respuesta

14

Puede configurar ActionMailer para usar el servidor SMTP de Gmail usando algo como esto en config/environment.rb:

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.server_settings = { 
    :address  => 'smtp.gmail.com', 
    :domain   => '<your domain>', 
    :port   => 587, 
    :user_name  => '<your gmail>', 
    :password  => '<your password>', 
    :authentication => :plain 
} 

Editar: Si tiene alguna dificultad, ajustar su configuración para mostrar errores :

ActionMailer::Base.raise_delivery_errors = true 
+0

gracias, por lo que si estoy tratando de enviar un correo electrónico desde localhost (no hacer que el remitente de una cuenta de correo electrónico regular, como Gmail) a un buzón de correo regular como gmail ¿qué pongo en los campos: domain,: user_name,: password and: authentication? – conspirisi

+0

Esto solo en la configuración para qué servidor de correo usar. La dirección de origen, la dirección, el asunto, etc. se cambian en cualquier otro lugar. Vea los ejemplos en la documentación de ActionMailer (http://api.rubyonrails.org/classes/ActionMailer/Base.html) sobre cómo hacer esto. –

+0

para gmail: enable_starttls_auto: verdadero a veces puede ser nesessary – Artur79

0

Puede enviarlo desde localhost, incluso puede configurar el remitente como un buzón 'real', por ejemplo [email protected]

Sin embargo, algunos (o más) servidores no aceptarán este correo como parte de su spam blocking strategy (incapacidad para verificar la identidad del remitente). Sin embargo, en el pasado, he tenido algo similar con python que funcionaba en gmail.

así que buena suerte ;-)

5

Para consultar todas ActionMailer. En RAILS_ROOT/config/environment/, hay un archivo para diferentes entornos (desarrollo, prueba, producción) los ajustes configurables van en estos archivos

se especifica el delivery_method como este,

ActionMailer::Base.delivery_method = :sendmail 

o si desea

ActionMailer::Base.delivery_method = :smtp 

Un ejemplo detallado de la configuración ha sido publicado por Mikael S

HTH

3

Si entiendo su situación correctamente, quiere enviar un correo electrónico desde su computadora local usando una dirección de correo electrónico personalizada como [email protected] Si ya registró el nombre de dominio para su cuenta de correo electrónico (mycompany.com), es muy probable que la compañía que aloja su sitio web también tenga un servidor POP/SMTP. Si es así, puede usar la muestra de Mikael S y cambiar el parámetro de dirección a la dirección smtp de su compañía de alojamiento y utilizar el nombre de usuario/contraseña de su compañía de hosting.

Si no ha registrado su dominio personalizado o no tiene un proveedor de alojamiento, puede instalar un servidor de correo electrónico gratuito en su computadora local. Si usa Windows XP, puede agregar el servidor de correo electrónico IIS al agregar/eliminar programas-> características de Windows. Si está utilizando Linux, puede usar cualquiera de los servidores de correo electrónico disponibles en los repositorios. Una vez que instale su servidor de correo electrónico local, usará el código de ejemplo de Mikael S y usará 127.0.0.1 o localhost en el campo de dirección. Si está usando el servidor de correo electrónico de Windows XP, creo que no tiene que ingresar el nombre de usuario/contraseña.

Espero que te ayude.

25

Actualización para carriles 4.0
Ahora se necesitan estas código para hacer que funcione:

# I recommend using this line to show error 
config.action_mailer.raise_delivery_errors = true 

ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.gmail.com', 
    :domain   => 'mail.google.com', 
    :port   => 587, 
    :user_name  => '[email protected]', 
    :password  => '******', 
    :authentication => :plain, 
    :enable_starttls_auto => true 
} 
+2

Y no olvide reiniciar su servidor de rieles –

Cuestiones relacionadas