[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Max Valdez dijo [Mon, Nov 08, 2004 at 12:34:25PM -0600]: > On Monday 08 November 2004 12:05 pm, Marcos R Garcia wrote: > > Hola lista! > > Alguno de ustedes sabe como generar un correo desde HTML que incluya > > archivos adjuntos? Estamos generando una aplicación de PHP que debe > > enviar una propuesta con texto e imagenes, las cuales son editadas por > > el usuario previamente al deseado envio. > > Este correo podria parecer dañado para algun lector, lo estoy mandando como me > salio, pero como estoy agregando un "attach" escrito, podria ser confundido. Espero que no sea el caso, porque el buscar información de encabezados a la mitad del texto del correo no pinta como una buena estrategia :-) > En los headers tienes que poner algo asi: > Content-Type: MULTIPART/MIXED; > BOUNDARY="-627829212-10853229-1099588709=:6251" > > y luego especificar lo referente al archivo as: > ---627829212-10853229-1099588709=:6251 > Content-Type: APPLICATION/text/plain; name="archivo.txt" > Content-Transfer-Encoding: BASE64 > Content-ID: <Pine LNX 4 44 0411041118290 6251 en mail com mx> > Content-Description: carta > Content-Disposition: attachment; filename="archivo.txt" > ....... > .......Aqui va el archivo > ...... > ---627829212-10853229-1099588709=:6251-- Sí, solución correcta, pero no óptima. Al enviar un cacho de texto adjunto, esto puede ser suficiente. Ahora, si vas a enviar un mensaje con binarios adjuntos tienes que chutarte la codificación al formato que gustes, si eres más viejito puede sonar buena idea usar uuencode (¿cuántos de ustedes lo usaron? ;-) ), pero para cualquier cosa hoy en día usarás algún MIME (como Base64). Y si bien puedes aventarte la rutinita, ¿por qué no darle todo a un pedacito de código ya conocido y comprobado? Usa el módulo de Perl MIME::Lite - muy simple y suficientemente completo para casi cualquier uso. De su documentación: ### Create a new multipart message: $msg = MIME::Lite->new( From =>'me en myhost com', To =>'you en yourhost com', Cc =>'some en other com, some en more com', Subject =>'A message with 2 parts...', Type =>'multipart/mixed' ); ### Add parts (each "attach" has same arguments as "new"): $msg->attach(Type =>'TEXT', Data =>"Here's the GIF file you wanted" ); $msg->attach(Type =>'image/gif', Path =>'aaa000123.gif', Filename =>'logo.gif', Disposition => 'attachment' ); Así de simple. Saludos, -- Gunnar Wolf - gwolf en gwolf org - (+52-55)1451-2244 / 5554-9450 PGP key 1024D/8BB527AF 2001-10-23 Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF