2010/9/4 Damian Janowski <[email protected]>

> 2010/9/4 Martin Aceto <[email protected]>:
> > Hola como están,
> >
> > estoy tratado de injectar un mail en la cola de un servidor con qmail y
> no
> > logro dar con la forma indicada.
> >
> > system("echo  #{puts tmail} | /var/qmail/bin/qmail-inject ")
> >
> > también lo intente con el binario de sendmail que sustituye qmail al
> > instalarlo, pero no pude.
> >
> > Alguien alguna vez hizo algo así ? o sabe como hay que formatear la
> salida
> > de tmail para que el qmail-inject lo tome ?
>
> No sé lo que es qmail, pero me parece que estás interpolando mal el
> string. Si haces "#{puts "foo"}" la cadena queda vacía, porque puts
> imprime a $stdout y devuelve nil.
>
> Si lo que querés es pipear, podés hacer esto:
>
> IO.popen("/var/qmail/bin/qmail-inject", "w") do |io|
>  io.write(tmail)
> end
>
> Eso asume que no necesitás la salida de qmail-inject. Si la necesitás,
> entonces deberías hacer:
>
> IO.popen("/var/qmail/bin/qmail-inject", "r+") do |io|
>  io.write(tmail)
>  io.close_write
>  io.read
> end
>
>
 Hola Damian, tenes razon del nil que devuelve el puts, ne me había dado
cuenta.

qmail es un MTA como lo es postfix por ejemplo.

El tema era no generar una conexión smtp por cada mail que necesitaba
enviar, por eso queria injectar derectamente a la cola de mails con
qmail-inject.

Por ahora lo resolvi de esta manera:

    Net::SMTP.start(SMTP_SERVER,25,DOMAIN_SERVER) do |sender|
      recipients.each do |recipient|
        tmail = Mailings.create_mailing(recipient, newsletter, delivery)
        sender.sendmail tmail.encoded, tmail.from, recipient.email
      end
      sender.finish
    end

Con una sola conexión envío todos los mails.

Pero voy a probar como vos me dijiste por ahí es mas rápido.


Muchas Gracias

-- 
Martin
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a