Actionmailer?


#1

Buenas, me gustaría enviar mails cuando se ejecuta cierta acción de mi
aplicación.

Me gustaría que en el entorno de desarrollo, se enviase a una cuenta y
en el
de producción a otra.

Ya he logrado enviar mails con éxito en producción, y me gustaría enviar
a
mi cuenta de gmail en desarrollo.

Entonces mis dudas son 2:

  • ¿Cuál es la configuración para que funcione lo de gmail?

Había puesto:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.server_settings = {
:address => “smtp.gmail.com”,
:port => 587,
:domain => “gmail.com”,
:authentication => :plain,
:user_name => “removed_email_address@domain.invalid”,
:password => “unpassword”
}

Pero da este fallo:

530 5.7.0 Must issue a STARTTLS command first j3sm5610313ugd

¿Sugerencias?

  • Y mi otra duda, que es más genérica de rails:

Tengo toda la configuración de la aplicación en environment.rb así:

RAILS_GEM_VERSION = ‘1.2.1’
require File.join(File.dirname(FILE), ‘boot’)
Rails::Initializer.run do |config|
end
#mis configuraciones

Y me gustaría usar las configuraciones específicas para desarrollo y
producción. Entonces mi duda es cómo se haría para que funcionase.
¿Habría que borrar environment.rb y añadir #mis configuraciones a
environments/production.rb y environments/development.rb?
o habría que dejar environment.rb y añadir las configuraciones del
ActionMailer a los environments/production.rb y
environments/development.rb

Gracias


#2

Hola,

STARTTLS es un comando de ESMTP, utilizado para iniciar una
conexiónsegura entre dos servidores utilizando TLS (Transport Layer Security),
protocolo basado en SSL.

Es decir, que el servidor smtp.gmail.com pide que inicies una
conexiónsegura TLS. El problema es que actionmailer no soporta estas
conexiones seguras. Para poder hacerlo, parece que hay dos
posibilidades (yo no las he probado):

  • Instalar, por ejemplo, msmtp (programa con soporte TLS) y configurar
    actionmailer para que use msmtp en lugar de sendmail [1]
  • Instalar el plugin actionmailer_tls [2], aunque no parece muy
    “mainstream”.

Ya nos contarás.

Salu2,

Javi

[1]
http://wiki.rubyonrails.com/rails/pages/HowToSendEmailsWithActionMailer
[2] http://agilewebdevelopment.com/plugins/actionmailer_tls


#3

quizás busqueis esto http://www.rubyinside.com/how-to-use-gmails-smtp-
server-with-rails-394.html

El 27/02/2007, a las 19:10, Javier Vidal P. escribió:


#4

Muchas gracias por las aclaraciones. Voy a probar


#5

Una
puntualización:
actionmailer no soporta TLS no porque utilice sendmail, si no porque
está implementado con Net::SMTP [1], librería que todavía no soporta
TLS. sendmail sí que soporta TLS [2], así que tal vez se pueda
configurar actionmailer para que utilice sendmail con TLS en lugar de
msmtp tal y como cuentan en la wiki. De hecho, prácticamente todos los
servidores de correo utilizados actualmente soportan TLS.

Todo esto es si quieres enviar los correos directamente desde tu
aplicación al servidor SMTP de gmail. Pero esto no tienes por qué
hacerlo así. Podrías utilizar otro servidor SMTP sobre el que tengas
cierto control (tiene que aceptar ser un “mail relay” para la
dirección que correo que envía). A éste servidor le enviarias el
correo sin TLS, de forma que éste a su vez se lo envíe al SMTP de
gmail, mediante TLS, claro.

Si, por ejemplo, tienes un hosting en dreamhost, este último escenario
es el más sencillo con diferencia. Envías con actionmailer a tu SMTP
de dreamhost, y éste, a su vez, entrega los correos directamente a
gmail.

[1] http://www.ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/index.html
[2] http://www.sendmail.org/~ca/email/starttls.html

Salu2,

Javi

El 27/02/07, Javier Vidal P. removed_email_address@domain.invalid
escribió:> Hola,