Forum: Rails-ES Action Mailer

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Miguel Angel Calleja Lázaro (Guest)
on 2007-03-12 19:55
(Received via mailing list)
Estoy probando a enviar un mail, he creado:
ruby script/generate mailer ContactoMailer confirm sent

class ContactoMailer < ActionMailer::Base
  def confirm(email)
    @subject    = 'Contacto'
    @body       = {}
    @recipients = email
    @from       = 'removed_email_address@domain.invalid'
    @sent_on    = Time.now
    @headers    = {}
  end
end

Mi plantilla tiene un formulario:
<%= start_form_tag :action => 'enviar_mail'%> que llama al enviar_mail

En mi controlador:
  def enviar_mail
    email=@params[:contacto][:email]
    correo=ContactoMailer.deliver_confirm(email)
  end

Hace falta hacer algo más? Imagino que en local igual no funciona,
todavía no lo he subido a un servidor, pero si me podeis decir si es más
o menos así y si está bien. Gracias
Miguel Angel Calleja Lázaro (Guest)
on 2007-03-13 15:00
(Received via mailing list)
Miguel Angel Calleja Lázaro
escribió:
>    @headers    = {}
>  end
>
>
Alguien me puede ayudar con ésto? para poder enviar un mail
David A. (Guest)
on 2007-03-13 15:42
(Received via mailing list)
On 3/13/07, Miguel Angel Calleja Lázaro <removed_email_address@domain.invalid> 
wrote:
> >Hace falta hacer algo más? Imagino que en local igual no funciona,
> >todavía no lo he subido a un servidor, pero si me podeis decir si es más
> >o menos así y si está bien. Gracias

En principio parece que lo tienes bien, para comprobar si funciona y
envía lo que quieres puedes comprobar el log de desarrollo
(log/development.log), queda logueado el email enviado, eso te sirve
para comprobar si todo ha ido bien aunque no tengas servidor de correo
en local ni un smtp para pruebas.

Un saludo

--
David A., el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman
Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo

Cuando no hago otra cosa escribo en mildiez.net
javier ramirez (Guest)
on 2007-03-13 16:02
(Received via mailing list)
>> Hace falta hacer algo más? Imagino que en local igual no funciona,
>> todavía no lo he subido a un servidor, pero si me podeis decir si es más
>> o menos así y si está bien. Gracias
>>
necesitarás también una vista que sería el cuerpo de tu correo. La vista
tiene que tener el nombre que tenga tu método en el mailer y recibe como
variables de instancia las que le pasas en la hash "body"

saludos,

javier ramirez


--------
Estamos de estreno... si necesitas llevar el control de tus gastos
visita http://www.gastosgem.com !!Es gratis!!
Miguel Angel Calleja Lázaro (Guest)
on 2007-03-13 18:03
(Received via mailing list)
javier ramirez
escribió:
>saludos,
>http://lists.simplelogica.net/mailman/listinfo/ror-es
>
>
>
He conseguido que me funcione, pero tengo unas dudidas:

En mi controlador:

def enviar_mail
    contacto=@params[:contacto]
    email=ContactoMailer.create_sent(contacto)
    email.set_content_type("text/html")
    ContactoMailer.deliver(email)
    redirect_to :action=>"contacto"
  end

En el model:
class ContactoMailer < ActionMailer::Base
  def sent(contacto)
    @subject    = 'Contacto desde ....'
    @body["contacto"] = contacto
    @recipients = 'removed_email_address@domain.invalid
    @from       = contacto[:email]
    @sent_on    = Time.now
    @headers    = {}
  end
end

En la vista sent:
Nombre: <%= @contacto[:nombre]%><br/>
Email: <%= @contacto[:email]%><br/>
Comentarios: <%= @contacto[:comentarios]%>

Recojo lo que me viene del formulario en contacto=@params[:contacto], y
para leer los valores que tiene tengo que referenciarlo como
contacto[:email], contacto[:nombre], contacto[:comentarios], pensaba que
se podía poner contacto.email, pero me dice que no encuentra el método
.email, está bien hecho así con [:email]?

Y la otra duda que tengo es que recibo caracteres raros lo que me llega
del formulario, todo lo que son acentos, los recibo con caracteres
raros. Estoy usando en mi vista:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona...
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"
/>
<title></title>
</head>

en vez del iso, tengo que usar otra cosa? o por qué es?
Miguel Angel Calleja Lázaro (Guest)
on 2007-03-14 19:00
(Received via mailing list)
Me sucede una cosa rara, tengo un formulario de contacto, estoy usando
UTF-8 en mi vista y en el environment.rb he puesto $KCODE='u' para que
todo sea utf-8, el action mailer lo tengo configurado
así:config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method=:smtp
config.action_mailer.server_settings = {
:address=>"mail.tal.com",
:authentication=>:login,
:user_name=>"removed_email_address@domain.invalid",
:password=>"tal"
}
config.action_mailer.perform_deliveries=true
config.action_mailer.default_charset="utf-8"

Todo lo que envío desde el formulario que contenga acentos, me llega con
caracteres raros:
Processing EsController#enviar_mail (for 213.97.99.248 at 2007-03-14
12:51:09) [POST]
  Session ID: 7321c2a92dbebf885cf18460e5020b04
  Parameters: {"contacto"=>{"comentarios"=>"asdfasdf áaaaá",
"nombre"=>"maño", "email"=>"removed_email_address@domain.invalid"}, 
"privacida>"on",
"action"=>"enviar_mail", "controller"=>"es"}
Sent mail:
 Date: Wed, 14 Mar 2007 12:51:09 -0400^M
From: removed_email_address@domain.invalid^M
To: removed_email_address@domain.invalid^M
Subject: Contacto desde tal..com^M
Content-Type: text/html^M
^M
Nombre: maño<br/>
Email: removed_email_address@domain.invalid<br/>
Comentarios: asdfasdf áaaaá

Me estoy volviendo loco, a qué se debe?
This topic is locked and can not be replied to.