Foros del Web » Programando para Internet » PHP »

Funcion enviar mail con datos adjuntos

Estas en el tema de Funcion enviar mail con datos adjuntos en el foro de PHP en Foros del Web. he echo un script que teoricamente es para conseguir enviar un e-mail en formato html y un archivo adjunto, todo me funciona bien escepto el ...
  #1 (permalink)  
Antiguo 31/08/2005, 02:01
Avatar de TCL_ZIP  
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 20 años, 5 meses
Puntos: 4
Funcion enviar mail con datos adjuntos

he echo un script que teoricamente es para conseguir enviar un e-mail en formato html y un archivo adjunto, todo me funciona bien escepto el archivo adjunto, pero no me da ningun error, please una ayudita


Código PHP:
<?
function enviamail($destinatario$remite$titulo$message$adjunto){
$UN_SALTO="\r\n";
$DOS_SALTOS="\r\n\r\n";


$mensaje="<html><head></head><body bgcolor=\"#0000ff\">";
$mensaje .="<font face=\"Arial\" size=6>".$message." </font>";
$mensaje .="</body></html>";

$separador "_separador_de_trozos_".md5 (uniqid (rand())); 
  
$cabecera "Date: ".date("l j F Y, G:i").$UN_SALTO
$cabecera .= "MIME-Version: 1.0".$UN_SALTO
$cabecera .= "From: ".$remitente."<".$remite.">".$UN_SALTO;
$cabecera .= "Return-path: "$remite.$UN_SALTO;
$cabecera .= "Reply-To: ".$remite.$UN_SALTO;
$cabecera .="X-Mailer: PHP/"phpversion().$UN_SALTO;
$cabecera .= "Content-Type: multipart/mixed;".$UN_SALTO
$cabecera .= " boundary=$separador".$DOS_SALTOS

// Parte primera -Mensaje en formato HTML 
      # Separador inicial
$texto ="--$separador".$UN_SALTO
      
# Encabezado parcial
$texto .="Content-Type: text/html; charset=\"ISO-8859-1\"".$UN_SALTO
$texto .="Content-Transfer-Encoding: 7bit".$DOS_SALTOS
      
# Contenido de esta parte del mensaje
  
$texto .= $mensaje;
 
      
# Separador de partes

$adj1 $UN_SALTO."--$separador".$UN_SALTO

// Parte segunda -Fichero adjunto nº 1 

      # Encabezado parcial

$adj1 .="Content-Type: ".$_FILES["adjunto"][type]."; name=".$_FILES["adjunto"][name].".$UN_SALTO;  
$adj1 .="
Content-Dispositioninlinefilename="".$_FILES["adjunto"][name]."\"".$UN_SALTO;
$adj1 .="Content-Transfer-Encoding: base64".$DOS_SALTOS

echo 
"tipo:".$_FILES["adjunto"][type]."<br>" ;
      
# lectura  del fichero adjunto  

           
$buff $adjunto
 
      
# codificación del fichero adjunto  
$adj1 .=chunk_split(base64_encode($buff)); 

      
# Separador de partes

$adj1 $UN_SALTO."--$separador".$UN_SALTO




// Unión de las diferentes partes para crear
   // el cuerpo del mensaje


  
$mensaje=$texto.$adj1;


 
// envio del mensaje 

  
mail($destinatario$titulo$mensaje,$cabecera);
echo 
"mensaje enviado";
}
?>
  #2 (permalink)  
Antiguo 31/08/2005, 06:26
Avatar de braulito  
Fecha de Ingreso: abril-2004
Ubicación: Cusco - Perú
Mensajes: 597
Antigüedad: 20 años
Puntos: 8
http://www.buayacorp.com/archivos/en...-estilo-gmail/
__________________
Braulio Soncco
braulio at buayacorp dot com
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 31/08/2005, 06:44
Avatar de TCL_ZIP  
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 20 años, 5 meses
Puntos: 4
no ven ninguna manera de corregir mi codigo?
  #4 (permalink)  
Antiguo 31/08/2005, 07:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No me he detenido a revisar tu código .. realmente por mi parte uso la classe:

PHP Mailer
http://phpmailer.sourceforge.net

Es bastante común y buen sustituto a "mail()" de PHP .. no sólo incorpora funcionalidad para enviar archivos adjuntos en tus e-mails generados .. sino otras cosas más interesantes como por ejemplo: autentificación SMTP .. envio directo por tus servidores SMTP (y no depender de la configuración de PHP al respecto) .. etc .. etc ...

Te recomiendo encarecidamente que la uses.

Un saludo,
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 12:53.