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.
0338d257688889ebba17b3215fef52e6?d=identicon&s=25 Chika (Guest)
on 2007-01-17 19:58
Hola, estoy intentando enviar correos y al parecer no entiendo la
documentacion del ActionMailer, ¿alguien tienen algo en español?sería
muy bueno.

Estoy haciendo que se envien correos a partir de un simple form:

<%= start_form_tag :controller => 'personas', :action => 'enviar_mail' ,
:correo => @correo%>
 <%= hidden_field ('correo', 'para',:value=> @persona.mail)%>
  <table>
    <tr>
        <td><strong>Para:</strong>
        </td>
         <td><%= @persona.mail%>

        </td>
    </tr>
    <tr>
        <td><strong>Asunto:</strong>
        </td>
        <td> <%= text_field ('correo','asunto') %>
        </td>
    </tr>
    <tr>
        <td> <%= text_area ('correo','mensaje') %>
        </td>
    </tr>
  </table>
 <%= submit_tag "Enviar" %>
 <%= end_form_tag %>

En el  método enviar_mail tengo:
def enviar_mail
Correo::deliver_enviar(params[:correo])
end

el error que obtengo es:
undefined method `mail' for #<HashWithIndifferentAccess:0x6625024>


Alguna idea??? ya he realizado las configuraciones....
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2007-01-17 20:41
(Received via mailing list)
On 17/01/07, Chika <ruby-forum-incoming@andreas-s.net> wrote:
> Hola, estoy intentando enviar correos y al parecer no entiendo la
> documentacion del ActionMailer, ¿alguien tienen algo en español?sería
> muy bueno.
>
> el error que obtengo es:
> undefined method `mail' for #<HashWithIndifferentAccess:0x6625024>

¿El error te lo da al enviar o al ver el formulario? Yo diría que es
lo segundo y que el problema lo tienes con tu @persona. ¿Está bien
asignada esa variable? ¿Has verificado que tenga el atributo 'mail?

--
Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola
D3efe7cc97506127cd87affe01e0eff9?d=identicon&s=25 Javier Vidal Postigo (Guest)
on 2007-01-18 09:05
(Received via mailing list)
¿Puedes enviarnos el código de la clase Correo?

2007/1/17, Manuel González Noriega <manuel.gonzalez.noriega@gmail.com>:
0338d257688889ebba17b3215fef52e6?d=identicon&s=25 Chika (Guest)
on 2007-01-18 16:18
el error me lo da luego de llenar el formulario y presionar "Enviar",
que me lleva al metodo enviar_mail:
def enviar_mail
Correo::deliver_enviar(params[:correo])
end

---------------------------------------Clase
Correo--------------------------
class Correo < ActionMailer::Base


 def enviar(correo)
    @from       = ''
    @sent_on    = Time.now
    @recipients = correo.mail
    @subject    = correo.asunto
    @body       = correo.mensaje

  end

 def mailings ()
  exceptions = {}
  recipients.each_slice(SENDING_BATCH_SIZE) do |recipients_slice|
    Net::SMTP.start('localhost', 25) do |sender|
      recipients_slice.each do |recipient|
        tmail.to = recipient
        begin
          sender.sendmail tmail.encoded, tmail.from, recipient
        rescue Exception => e
         exceptions[recipient] = e
          #needed as the next mail will send command MAIL FROM, which
would
          #raise a 503 error: "Sender already given"
          sender.finish
          sender.start
        end
      end
    end
  end
end

  end
D3efe7cc97506127cd87affe01e0eff9?d=identicon&s=25 Javier Vidal Postigo (Guest)
on 2007-01-18 17:11
(Received via mailing list)
A deliver_enviar le estas pasando params[:correo], que es un Hash que
se compone en el formulario. Este hash será algo así (escribo de
memoria):

"correo"=>{"para"=>"correo", "asunto"=>"cadena", "mensaje"=>"cadena"}

Esto lo puedes ver en el development.log.

Por ello, el método enviar debería ser algo
así:
def enviar(correo)
   @from       = ''
   @sent_on    = Time.now
   @recipients = correo[:para]
   @subject    = correo[:asunto]
   @body       = correo[:mensaje]
 end

Salu2,

Javi
0338d257688889ebba17b3215fef52e6?d=identicon&s=25 Chika (Guest)
on 2007-01-18 18:24
Javier, te pasaste!!!! me resultó..... suelo tener ese tipo de
errores.... gracias




Javier Vidal Postigo wrote:
> A deliver_enviar le estas pasando params[:correo], que es un Hash que
> se compone en el formulario. Este hash ser� algo as� (escribo de
> memoria):
>
> "correo"=>{"para"=>"correo", "asunto"=>"cadena", "mensaje"=>"cadena"}
>
> Esto lo puedes ver en el development.log.
>
> Por ello, el m�todo enviar deber�a ser algo
> as�:
def enviar(correo)
>    @from       = ''
>    @sent_on    = Time.now
>    @recipients = correo[:para]
>    @subject    = correo[:asunto]
>    @body       = correo[:mensaje]
>  end
>
> Salu2,
>
> Javi
This topic is locked and can not be replied to.