Problemas con el archivo adjunto
Hola,
necesito enviar un mail usando php, y enviar un archivo .txt como adjunto.
Con el siguiente código envia el mail y el adjunto... o al menos eso parece a simple vista porque la vedad es que no me deja ver ni descargar el archivo y el tamaño del archivo no coincide con el que tengo en el servidor.
Por favor, necesito ayuda para saber lo que hago mal y como puedo solucionarlo.
Muchas gracias
Aqui os dejo el codigo:
<?
$UN_SALTO="rn";
$DOS_SALTOS="rnrn";
$destinatario="[email protected]";
$titulo="Mensaje con fichero adjunto";
$mensaje="<html><head></head><body bgcolor="#0000ff">";
$mensaje .="<font face="Arial" size=6>Prueba HTML </font>";
$mensaje .="</body></html>";
$responder="[email protected]";
$remite="[email protected]";
$remitente="Respuestas de la encuesta";
$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: image/jpeg; name="casa08.jpg"".$UN_SALTO;
$adj1 .="Content-Disposition: inline; filename="leoncio.jpg"".$UN_SALTO;
$adj1 .="Content-Transfer-Encoding: base64".$DOS_SALTOS;
# lectura del fichero adjunto
$fp = fopen("casa08.jpg", "r");
$buff = fread($fp, filesize("casa08.jpg"));
fclose($fp);
# codificación del fichero adjunto
$adj1 .=chunk_split(base64_encode($buff));
# Separador de partes
$adj2 = $UN_SALTO."--$separador".$UN_SALTO;
*/
// Parte tercera -Fichero adjunto nº 2
# Encabezado parcial
$adj2 .="Content-Type: application/msword; name="respuestas.txt"".$UN_SALTO;
$adj2 .="Content-Disposition: attachment; filename="respuestas.txt"".$UN_SALTO;
$adj2 .="Content-Transfer-Encoding: base64".$DOS_SALTOS;
# lectura del fichero adjunto
$fp = fopen("respuestas.txt", "r");
$buff = fread($fp, filesize("respuestas.txt"));
fclose($fp);
# codificación del fichero adjunto
$adj2 .=chunk_split(base64_encode($buff));
// separador final del mensaje
$adj2 .=$UN_SALTO."--$separador".$UN_SALTO;
// Unión de las diferentes partes para crear
// el cuerpo del mensaje
$mensaje=$texto.$adj1.$adj2;
// envio del mensaje
if( mail($destinatario, $titulo, $mensaje,$cabecera)){
echo "mensaje enviado";
}
?>
necesito enviar un mail usando php, y enviar un archivo .txt como adjunto.
Con el siguiente código envia el mail y el adjunto... o al menos eso parece a simple vista porque la vedad es que no me deja ver ni descargar el archivo y el tamaño del archivo no coincide con el que tengo en el servidor.
Por favor, necesito ayuda para saber lo que hago mal y como puedo solucionarlo.
Muchas gracias
Aqui os dejo el codigo:
<?
$UN_SALTO="rn";
$DOS_SALTOS="rnrn";
$destinatario="[email protected]";
$titulo="Mensaje con fichero adjunto";
$mensaje="<html><head></head><body bgcolor="#0000ff">";
$mensaje .="<font face="Arial" size=6>Prueba HTML </font>";
$mensaje .="</body></html>";
$responder="[email protected]";
$remite="[email protected]";
$remitente="Respuestas de la encuesta";
$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: image/jpeg; name="casa08.jpg"".$UN_SALTO;
$adj1 .="Content-Disposition: inline; filename="leoncio.jpg"".$UN_SALTO;
$adj1 .="Content-Transfer-Encoding: base64".$DOS_SALTOS;
# lectura del fichero adjunto
$fp = fopen("casa08.jpg", "r");
$buff = fread($fp, filesize("casa08.jpg"));
fclose($fp);
# codificación del fichero adjunto
$adj1 .=chunk_split(base64_encode($buff));
# Separador de partes
$adj2 = $UN_SALTO."--$separador".$UN_SALTO;
*/
// Parte tercera -Fichero adjunto nº 2
# Encabezado parcial
$adj2 .="Content-Type: application/msword; name="respuestas.txt"".$UN_SALTO;
$adj2 .="Content-Disposition: attachment; filename="respuestas.txt"".$UN_SALTO;
$adj2 .="Content-Transfer-Encoding: base64".$DOS_SALTOS;
# lectura del fichero adjunto
$fp = fopen("respuestas.txt", "r");
$buff = fread($fp, filesize("respuestas.txt"));
fclose($fp);
# codificación del fichero adjunto
$adj2 .=chunk_split(base64_encode($buff));
// separador final del mensaje
$adj2 .=$UN_SALTO."--$separador".$UN_SALTO;
// Unión de las diferentes partes para crear
// el cuerpo del mensaje
$mensaje=$texto.$adj1.$adj2;
// envio del mensaje
if( mail($destinatario, $titulo, $mensaje,$cabecera)){
echo "mensaje enviado";
}
?>