Action mailer attachment

Necesito enviar un email con un attachment, alguien me podría aconsejar de
cómo puedo añadir el fichero y que se envíe por correo?
Hay que subir primero el fichero al servidor, leerlo y luego borrarlo?

class ApplicationMailer < ActionMailer::Base
# attachments
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject “New account information”
from “[email protected]

  attachment :content_type => "image/jpeg",
    :body => File.read("an-image.jpg")

  attachment "application/pdf" do |a|
    a.body = generate_your_pdf_here()
  end
end

end

Muchas gracias

Miguel Angel Calleja Lázaro
escribió:

 attachment :content_type => "image/jpeg",

Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es

Detallo lo que he hecho, en mi controlador recojo lo que me llega del
formulario, subo el fichero al servidor y llamo a mi TrabajaMailer:
def enviar_trabaja
size=params[‘file_data’].size
tipo=params[:file_data].content_type
nombre=params[:file_data].original_filename
contenido=params[:file_data].read
dir=“/…/public/”
if size>0
dest=File.join(dir,sanitize_filename(nombre))
File.open(dest.untaint, ‘wb’) { |f| f <<
contenido }
#Borramos el fichero temporal si fue creado
local_temp_file=params[:file_data].local_path()
File.unlink(local_temp_file) if local_temp_file
end

        contact=params[:trabaja] #Lo que llega del formulario
        email=TrabajaMailer.create_sent(contact,tipo,nombre,dest)
        email.set_content_type("text/html")
            if  TrabajaMailer.deliver(email)
            flash[:notice]="El formulario ha sido enviado con

éxito, nos pondremos en contacto con usted en el menor tiempo posible."
else
flash[:notice]=“El formulario no se ha podido enviar”
end
@pagina=Pagina.find(15)
redirect_to :action=>‘ver’, :permalink=>@pagina.permalink
end

Y mi TrabajaMailer, donde recojo el content_type, leo el fichero y el
nombre, aparte me tiene que sacar los datos en la vista:

def sent(contacto,tipo,nombre,dest)
@subject = 'Trabaja con nosotros ’
@body[“contacto”] = contacto
@recipients = ‘[email protected]
@from = ‘[email protected]
@sent_on = Time.now
@headers = {}
attachment :content_type => tipo,
:body => File.read(dest),
:filename => nombre
end

Y mi vista, donde muestro los datos:

Nombre y apellidos: <%= @contacto[:apellidos]%>, <%=@contacto[:nombre]%>
Departamento: <%= @contacto[:departamento]%>
Teléfono: <%= @contacto[:telefono] %> Email: <%= @contacto[:email] %>
Comentarios: <%= @contacto[:comentarios] %>

Se sube el fichero al servidor, me envía el mail pero no me llega
correctamente, no me llega la vista ahora y al correo me viene algo
horroroso de ver:
–mimepart_46f8eb039bf64_6222…fdbfa33a4172e Content-Type: image/jpeg;
name=alimentaciondetail.jpg Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename=alimentaciondetail.jpg
/9j/4AAQSkZJRgABAAEAYABgAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5j
LiBWMS4wMQD/2wCEAAgFBgcGBQgHBgcJCAgJDBQNDAsLDBgREg4UHRkeHhwZ
HBsgJC4nICIrIhscKDYoKy8xMzQzHyY4PDgyPC4yMzEBCAkJDAoMFw0NFzEh
… --mimepart_46f8eb039bf64_6222…fdbfa33a4172e–

Adjunto el log:

Processing PaginasController#enviar_trabaja (for xx.xx.xx.xx at
2007-09-25 07:03:31) [POST]
Session ID: 8e9752718bda6cd6c403095f40fe7de9
Parameters: {“action”=>“enviar_trabaja”,
“file_data”=>#<File:/tmp/CGI25122.6>, “controller”=>“paginas”,
“trabaja”=>{“comentarios”=>“”, “nombre”=>“h”,
“departamento”=>“Departamento 3”, “telefono”=>“a”, “email”=>“[email protected]”,
“apellidos”=>“a”}}
^[[4;36;1mPagina Load (0.000265)^[[0m ^[[0;1mSELECT * FROM paginas
WHERE (padre_id=21) ORDER BY orden ^[[0m
^[[4;35;1mPagina Columns (0.000284)^[[0m ^[[0mSHOW FIELDS FROM
paginas^[[0m
^[[4;36;1mPagina Load (0.000205)^[[0m ^[[0;1mSELECT * FROM paginas
WHERE (padre_id=21) ORDER BY orden ^[[0m
^[[4;35;1mPagina Load (0.000236)^[[0m ^[[0mSELECT * FROM paginas
WHERE (padre_id=1) ORDER BY orden ^[[0m
^[[4;36;1mPagina Load (0.000226)^[[0m ^[[0;1mSELECT * FROM paginas
WHERE (padre_id=2) ORDER BY orden ^[[0m
^[[4;35;1mPagina Load (0.000176)^[[0m ^[[0mSELECT * FROM paginas
WHERE (padre_id=3) ORDER BY orden ^[[0m
^[[4;36;1mPagina Load (0.000198)^[[0m ^[[0;1mSELECT * FROM paginas
WHERE (padre_id=0) ORDER BY id ^[[0m
Sent mail:
Date: Tue, 25 Sep 2007 07:03:31 -0400^M
From: [email protected]^M
To: [email protected]^M
Subject: Trabaja con nosotros desde Somosierra.com^M
Mime-Version: 1.0^M
Content-Type: text/html;
boundary=mimepart_46f8eb0399939_6222…fdbfa33a4158b^M
^M
^M
–mimepart_46f8eb0399939_6222…fdbfa33a4158b^M
Content-Type: image/jpeg; name=alimentaciondetail.jpg^M
Content-Transfer-Encoding: Base64^M
Content-Disposition: attachment; filename=alimentaciondetail.jpg^M
^M
/9j/4AAQSkZJRgABAAEAYABgAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5j
LiBWMS4wMQD/2wCEAAgFBgcGBQgHBgcJCAgJDBQNDAsLDBgREg4UHRkeHhwZ
HBsgJC4nICIrIhscKDYoKy8xMzQzHyY4PDgyPC4yMzEBCAkJDAoMFw0NFzEh
HCExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx

/9k=
–mimepart_46f8eb0399939_6222…fdbfa33a4158b–^M

Algo estoy haciendo mal, el mail no me llega correctamente con el
attachment, alguien puede ayudarme? gracias

Miguel Angel Calleja Lázaro
escribió:

subject         "New account information"
                   File.open(dest.untaint, 'wb') { |f| f << contenido }

éxito, nos pondremos en contacto con usted en el menor tiempo posible."
def sent(contacto,tipo,nombre,dest)

Teléfono: <%= @contacto[:telefono] %>
Content-Disposition: attachment; filename=alimentaciondetail.jpg
Parameters: {“action”=>“enviar_trabaja”,
^[[4;35;1mPagina Load (0.000236)^[[0m ^[[0mSELECT * FROM paginas
To: [email protected]^M
^M
attachment, alguien puede ayudarme? gracias


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es

Lo he solucionado, si a alguien le interesa he añadido en mi controlador
para que el content sea multipart:
email.set_content_type(“multipart”,“mixed”)

y en TrabajaMailer, he añadido:
part :content_type =>“text/html”,
:body=>render_message(“sent”,:contacto=>contacto)