Mirando el archivo que genera Outlook veo que utiliza ";" en la generación de los csv (si tu versión es distinta lo cambias). Hice un par de modificaciones a tu código y en principio puede importar sin problemas, espero que te sirva. Para el ejemplo he utilizado una tabla de pruebas como esta:
Código:
CREATE TABLE `temp` (
`Title` varchar(32) NOT NULL,
`Email` varchar(32) default NULL,
PRIMARY KEY (`Title`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
insert into `temp`(`Title`,`Email`) values ('Miss','[email protected]'),('Mr','[email protected]'),('Mrs','[email protected]');
El código PHP quedaría así:
Código PHP:
$selTotal = "SELECT * FROM temp";
$res = mysql_query($selTotal);
$csvName = "libreta.csv";
$fileHandle = fopen($csvName,'w+');
$elCSV = "Title;";
$elCSV .= "Email"; //El último campo no lleva ;
$elCSV .= "\n";
while( $elTotal = mysql_fetch_assoc($res) ){
$elCSV .= "{$elTotal['Title']};";
$elCSV .= "{$elTotal['Email']}"; //El último campo no lleva ;
$elCSV .= "\n";
}
fwrite($fileHandle,$elCSV);
fclose($fileHandle);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header('Content-Type: application/csv; utf-8');
header("Content-Disposition: attachment; filename=libreta.csv");
header("Content-Transfer-Encoding: binary");
// header("Content-Length: ".filesize($elCSV));
readfile('libreta.csv');
exit();
Espero que te sea útil, 1 saludo;