AvenueDuWeb Posté 14 Septembre 2005 Posté 14 Septembre 2005 Bonjour tout le monde, J'explique le pourquoi du comment de ce titre super précis. J'ai un script qui envoie une sauvegarde de base de donées par mail en php, il fonctionne parfaitement. Mais si je le lance en tâche Cron, le mail est bien envoyé mais le fichier joint (en .gz) fait 0 octet et le décompresseur me dit que l'archive est vide. Voici le script en question : <?php $boundary = "-----=".md5(uniqid(rand())); $header = "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; $header .= "\r\n"; $msg = "Ceci est un message au format MIME 1.0 multipart/mixed.\r\n"; $msg .= "--$boundary\r\n"; $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"; $msg .= "Content-Transfer-Encoding:8bit\r\n"; $msg .= "\r\n"; $date = date("d/m/Y"); $msg .= "Sauvegarde du $date \r\n"; $msg .= "\r\n"; $file = "fichier.gz"; $fp = fopen($file, "rb"); $attachment = fread($fp, filesize($file)); fclose($fp); $attachment = chunk_split(base64_encode($attachment)); $msg .= "--$boundary\r\n"; $msg .= "Content-Type: application/x-gzip; name=\"$file\"\r\n"; $msg .= "Content-Transfer-Encoding: base64\r\n"; $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n"; $msg .= "\r\n"; $msg .= $attachment . "\r\n"; $msg .= "\r\n\r\n"; $msg .= "--$boundary--\r\n"; $destinataire = "destinataire_AT_gmail.com"; $expediteur = "expediteur_AT_gmail.com"; $reponse = $expediteur; mail($destinataire, "Sauvegarde de la base de données du $date", $msg, "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header); ?> Précision, le serveur de mail est Exim. Si quelqu'un sait d'où peut venir le problème où a un autre script à me proposer (en shell par exemple) je suis preneur. Merci d'avance. @+
AvenueDuWeb Posté 14 Septembre 2005 Auteur Posté 14 Septembre 2005 Donc la solution était très simple, il suffisait de mettre le chemin complet du fichier, quand c'est lancé à partir de la tâche cron, PHP part de la racine du disque alors que lancé par Apache il part du dossier du script. Désolé de vous avoir fait chier avec ça, j'aurai dû trouver tout seul (enfin surtout bcp plus vite), simplement en lançant le script en shell. Merci quand même. @+
rportal Posté 14 Septembre 2005 Posté 14 Septembre 2005 (modifié) Tu ne dois pas indiquer la taille du fichier joint? [édité] Oups autant pour moi [/édité] Modifié 14 Septembre 2005 par rportal
Portekoi Posté 14 Septembre 2005 Posté 14 Septembre 2005 Ne t'excuse pas car tu es revenu donner la solution ce qui en aidera plus d'un je pense
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant