Foros del Web » Programando para Internet » PHP »

Attachs con la funcion mail()

Estas en el tema de Attachs con la funcion mail() en el foro de PHP en Foros del Web. ¿Que tal familia? ***************************** He buscado topics en este foro y encontré uno, pero resolvieron el problema "en privado", es decir a traves de sus ...
  #1 (permalink)  
Antiguo 31/01/2002, 06:46
Avatar de zarate  
Fecha de Ingreso: septiembre-2001
Ubicación: Madrid
Mensajes: 164
Antigüedad: 22 años, 7 meses
Puntos: 0
Attachs con la funcion mail()

¿Que tal familia?

*****************************

He buscado topics en este foro y encontré uno, pero resolvieron el problema "en privado", es decir a traves de sus mails y no en el foro. He intentado ponerme en contacto con ellos pero no me han respondido (era un topic bastante antiguo). Desde aqui pido a todo el mundo y yo me comprometo a hacerlo, que resuelva los problemas en el foro, que para eso está, con lo que además no hace falta duplicar topics, sino buscar los antiguos, asi la gente que sabe (no me incluyo) no tiene que responder muchas veces la misma pregunta, sino responder: "si, eso esta en el topic...". En fin , si lo solucionamos, me comprometo a poner la solucion aqui, para que el proximo sepa donde encontrarlo.

***************************************

Basicamente necesito crear una pagina en la que la gente introduzca un texto normal y luego pueda adjuntar almenos una imagen.

He encontrado bastante informacion en la red, pero bastante compleja, utilizando classes bastante complicadas, y quisiera saber si es necesario dos páginas enteras de codigo para hacerlo, si es asi no me queda más remedio, pero en principio solo necesito algo sencillo, ya tendre tiempo de complicarme la vida.

A quien le interese aqui hay un articulo bastante completo (demasiado para mi)<a href='ir.asp?http://www.phpbuilder.com/columns/kartic20000807.php3' target='_blank'>http://www.phpbuilder.com/columns/kartic...</a> y aqui otro<a href='ir.asp?http://phpmailer.sourceforge.net/' target='_blank'>http://phpmailer.sourceforge.net/...</a>

Muchas gracias a todos.

Zarate
  #2 (permalink)  
Antiguo 31/01/2002, 09:06
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Attachs con la funcion mail()

lamento comunicarte que no hay muchas mas salidas que esas, veras, el formato en el que el email se almacena y transmite es el MIME multipart, esto es un texto compuesto por uno o mas bloques qye a su vez estan compuestos por: encabezado (&quot;headers&quot;), y contenido (&quot;body&quot;).
Esto es invisible a nosotros cuando usamos funciones como mail y esas cosas, pero es el formato standard del email.
Otra alternativa es que armes tu propia funcion, un poco retorcida para mandar un solo attachment, no seria algo demasiado complicado creo...
  #3 (permalink)  
Antiguo 31/01/2002, 09:55
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Attachs con la funcion mail()

esto seria un codigo muy &quot;sencillo&quot; que hace el trabajo

<pre>
&lt;?
if(isset($mandomail))
{
print(&quot;&lt;b&gt;To:&lt;/b&gt; $mail_to&lt;br&gt;&quot;);
print(&quot;&lt;b&gt;From:&lt;/b&gt; $mail_from&lt;br&gt;&quot;);
print(&quot;&lt;b&gt;Subject:&lt;/b&gt; $mail_subject&lt;br&gt;&quot;);
print(&quot;&lt;b&gt;Body:&lt;/b&gt;&lt;br&gt;$mail_body&lt;br&gt;&quot;);
print(&quot;&lt;b&gt;Attach:&lt;/b&gt; $attach_name&lt;br&gt;&quot;);

$headers = &quot;MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\&quot;XX-1234DED00099A\&quot;;\nContent-Transfer-Encoding: 7bit&quot;;

$body = &quot;This is a MIME Encoded Message\n\n--XX-1234DED00099A\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\n\n&quot; .
$mail_body . &quot;\n&quot;;
//vemos si hay attachment, &quot;none&quot; es el valor que el php le asigna al nombre cuando no se subio archivo
if(($attach != &quot;none&quot;) &amp;&amp; (is_uploaded_file($attach)))
{
$uf = fopen($attach, &quot;r&quot;);
$buffer = &quot;&quot;;
while (!feof($uf))
{
$buffer .= fread($uf,4096);
}
$buffer = chunk_split(base64_encode($buffer));
$body .= &quot;\n--XX-1234DED00099A\nContent-Type: $attach_type; name=\&quot;$attach_name\&quot;\nContent-Transfer-Encoding: base64\n\n&quot; .
$buffer . &quot;\n&quot;;
}

print(&quot;&lt;pre&gt;$body&lt;/pre&gt;&quot;);

if(mail($mail_to,$mail_subject,$body,&quot;From: $mail_from\n&quot;.$headers))
{
print(&quot;&lt;br&gt;enviado!!!&lt;br&gt;&quot;);
}
else
{
print(&quot;&lt;br&gt;ERROR!!!&lt;br&gt;&quot;);
}
}
?&gt;
&lt;form action=&quot;&lt;?=$PHP_SELF?&gt;&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;mandomail&quot; value=&quot;si&quot;&gt;
To:&amp;nbsp;&lt;input type=&quot;text&quot; name=&quot;mail_to&quot;&gt;&lt;br&gt;
From:&amp;nbsp;&lt;input type=&quot;text&quot; name=&quot;mail_from&quot;&gt;&lt;br&gt;
Subject:&amp;nbsp;&lt;input type=&quot;text&quot; name=&quot;mail_subject&quot;&gt;&lt;br&gt;
&lt;textarea name=&quot;mail_body&quot;&gt;&lt;/textarea&gt;&lt;br&gt;
&lt;input type='file' name='attach'&gt;&lt;br&gt;
&lt;input type=&quot;submit&quot; value=&quot;send&quot;&gt;
&lt;/form&gt;
</pre>
  #4 (permalink)  
Antiguo 31/01/2002, 12:47
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 62
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Attachs con la funcion mail()

zarate, como bien sabes el que realizo esta consulta en su oportunidad fui yo y consegui la solucion por e-mail ya que son varios archivos php con clases.
Tanto para vos como para el que lo necesite, solo tiene que avisarme que le mando los archivos por email sin ningun tipo de problemas (a diganme donde los puedo subir para que este disponible para todos).

Saludos.
  #5 (permalink)  
Antiguo 31/01/2002, 13:51
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Attachs con la funcion mail()

el codigo que envie un mensaje arriba cumple con tu pedido, y es facilmente modificable para enviar N attachments, y teniendo en cuenta un par de detalles puedes mandar emails en formato html con imagenes incluidas.

lo que actualmente hace es presentar un form con subject, to, from, cuerpo, y attach, una vez llenados los datos se envia y el mismo script recibe la info, y la procesa usando la funcion mail standard del php, y agregando un par de headers extras y enviando un body un poco &quot;tocado&quot; para agregar el attachment.

saludos

  #6 (permalink)  
Antiguo 31/01/2002, 14:50
Avatar de zarate  
Fecha de Ingreso: septiembre-2001
Ubicación: Madrid
Mensajes: 164
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Attachs con la funcion mail()

Muchas gracias familia, pasaré un par de dias sin levantar la cabeza del monitor asimilando toda la informacion que recibi, ya os contaré el resultado, muchas gracias a todos.

Zarate
  #7 (permalink)  
Antiguo 13/09/2006, 13:26
 
Fecha de Ingreso: noviembre-2004
Mensajes: 57
Antigüedad: 19 años, 5 meses
Puntos: 0
chubu...muchas gracias anda de mil maravillas
  #8 (permalink)  
Antiguo 13/09/2006, 13:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Gorriak Ver Mensaje
chubu...muchas gracias anda de mil maravillas
Hoy en día existe la classe PHPMailer (http://phpmailer.sourceforge.net) que sustituye a mail() o lo complementa para hacer todo tipo de taréas con e-mails (envios) .. con archivos adjuntos, en HTML .. multiparte .. enviado por SMTP directo (con autentificación incluida si es necesario .. ) etc.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:27.