Bueno ya lo he solucionado,
Queda asi :
$frontera = '--=_NextPart_01CCFD20.1986B0A0';
$para = "
[email protected]";
$asunto = "Correo con adjunto";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary="' . $frontera . '"';
$nombre_fichero_con_ruta = 'imagen.gif';
$nombre_fichero = 'imagen.gif';
$tipo_fichero = 'image/gif';
$adjunto= chunk_split(base64_encode(file_get_contents($nombr e_fichero_con_ruta)));
$msg = 'Mi prueba para mandar';
$correo = "\r\n" . '--' . $frontera . "\r\n";
$correo .= 'Content-Type: text/html; charset="iso-8859-1"; Content-Transfer-Encoding: 7bit' . "\r\n";
$correo .= $msg;
$correo .= "\r\n" . '--' . $frontera . "\r\n";
$correo .= 'Content-Type: ' . $tipo_fichero . '; name="' . $nombre_fichero . '"' . "\r\n";
$correo .= 'Content-Transfer-Encoding: base64 ' . "\r\n";
$correo .= 'Content-Disposition: attachment; filename="' . $nombre_fichero . '"' . "\r\n";
$correo .= $adjunto;
$correo .= "\r\n" . '--' . $frontera . '--' . "\r\n";
if (@mail($para, $asunto, $correo, $headers)) { $msg = 'Funciona'; }
else { $msg = 'No funciona'; }
echo $msg;
Me faltaba un "\r\n" despues de base64. Con esta tonteria de cambio ya funciona