Action Mailer


#1

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


#2

Miguel Angel Calleja Lázaro
escribió:

@headers = {}
end

Alguien me puede ayudar con ésto? para poder enviar un mail


#3

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


#4

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!!


#5

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]%>

Email: <%= @contacto[:email]%>

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:

en vez del iso, tengo que usar otra cosa? o por qué es?


#6

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

Email: removed_email_address@domain.invalid

Comentarios: asdfasdf áaaaá

Me estoy volviendo loco, a qué se debe?