Tengo el siguiente código que ví en el foro para enviar correo con datos adjuntos. Me funciona bien, es decir, recibo el correo pero el problema es que no me envía el archivo como archivo adjunto, sino que me llega como código ASCII.
Código PHP:
<?
if(isset($mandomail))
{
print('<b>To:</b> $mail_to<br>');
print('<b>From:</b> $mail_from<br>');
print('<b>Subject:</b> $mail_subject<br>');
print('<b>Body:</b><br>$mail_body<br>');
print('<b>Attach:</b> $attach_name<br>');
$headers = 'MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\'XX-1234DED00099A\';\nContent-Transfer-Encoding: 7bit';
$body = 'This is a MIME Encoded Message\n\n--XX-1234DED00099A\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\n\n' .
$mail_body . '\n';
//vemos si hay attachment, 'none' es el valor que el php le asigna al nombre cuando no se subio archivo
if(($attach != 'none') && (is_uploaded_file($attach)))
{
$uf = fopen($attach, 'r');
$buffer = '';
while (!feof($uf))
{
$buffer .= fread($uf,4096);
}
$buffer = chunk_split(base64_encode($buffer));
$body .= '\n--XX-1234DED00099A\nContent-Type: $attach_type; name=\'$attach_name\'\nContent-Transfer-Encoding: base64\n\n' .
$buffer . '\n';
}
print('<pre>$body</pre>');
if(mail($mail_to,$mail_subject,$body,'From: $mail_from\n'.$headers))
{
print('<br>enviado!!!<br>');
}
else
{
print('<br>ERROR!!!<br>');
}
}
?>
<form action='<?=$PHP_SELF?>' method='post' enctype='multipart/form-data'>
<input type='hidden' name='mandomail' value='si'>
To: <input type='text' name='mail_to'><br>
From: <input type='text' name='mail_from'><br>
Subject: <input type='text' name='mail_subject'><br>
<textarea name='mail_body'></textarea><br>
<input type='file' name='attach'><br>
<input type='submit' value='send'>
</form>
Gracias!
Liz