mail, PJ et free: si qqun a reussi... [RESOLU] - PHP - Programmation
Marsh Posté le 09-11-2007 à 09:33:17
Ca peut venir des headers, les retours chariots : remplace les \r\n par \n, et essaye pour voir, ça peut jouer. 
 
Bien que la norme veux des \r\n, j'ai remarqué que \n marchait mieux...
Marsh Posté le 09-11-2007 à 13:06:29
Merci pour la réponse... 
J'ai vraiment cru que ca aller me sauver mais NON!!!! 
 
Explications supplémentaires: 
- si je relève mes mails sur le serveur de free, je n'ai que l'en-tete qui apparait (de,cc objet) aucune trace du fichier joint 
- avec thunderbird, j'ai mapiece.pdf (illisible) et un fichier vide partie 1.2 
 
Encore merci! 
Je continue à creuser...
Marsh Posté le 09-11-2007 à 13:35:11
Oublie pas aussi pour chunk_split de préciser le type de retour chariot à utiliser, pour être consistant
Marsh Posté le 09-11-2007 à 18:58:20
modif: 
 
$content = chunk_split(base64_encode($content),"\n" ); 
 
 
Marche tjs pas ...Merci qd même! 
Je vais peut-être toucher le fond si je continue a creuser 
Marsh Posté le 09-11-2007 à 20:00:45
 
$content = chunk_split(base64_encode($content),64,"\n" );
Marsh Posté le 10-11-2007 à 12:38:20
Code qui marche(pas trouvé l'erreur) mais celui-là marche: 
<?php 
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) { 
    $file = $path.$filename; 
    $file_size = filesize($file); 
    $handle = fopen($file, "r" ); 
    $content = fread($handle, $file_size); 
    fclose($handle); 
    $content = chunk_split(base64_encode($content)); 
    $uid = md5(uniqid(time())); 
    $name = basename($file); 
    
    $header = "From: ".$from_name." <".$from_mail.">\r\n"; 
    $header .= "Bcc: xxx@gmail.com \r\n"; 
    $header .= "Reply-To: ".$replyto."\r\n"; 
    $header .= "MIME-Version: 1.0\r\n"; 
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; 
    $header .= "This is a multi-part message in MIME format.\r\n"; 
    $header .= "--".$uid."\r\n"; 
    $header .= "Content-type:text/plain; charset=iso-8859-1\r\n"; 
    $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; 
    $header .= $message."\r\n\r\n"; 
    $header .= "--".$uid."\r\n"; 
    $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use diff. tyoes here 
    $header .= "Content-Transfer-Encoding: base64\r\n"; 
    $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; 
    $header .= $content."\r\n\r\n"; 
    $header .= "--".$uid."--"; 
    if (mail($mailto, $subject, "", $header)) { 
        echo = "mail send ... OK"; // or use booleans here 
    } else { 
        echo = "mail send ... ERROR!"; 
    } 
} 
// how to use 
$my_file = "2007.pdf"; 
$my_path = $_SERVER['DOCUMENT_ROOT']."/path/"; 
$my_name = "Kaizer"; 
$my_mail = "xxx@mail.com"; 
$my_replyto = "my_reply_to@mail.net"; 
$my_subject = "Statistiques: "; 
$my_message = "Hello,\r\ndo you like this script? I hope it will help.\r\n\r\n dede"; 
mail_attachment($my_file, $my_path, "recipient@free.fr", $my_mail, $my_name, $my_replyto, $my_subject, $my_message); 
?>
Marsh Posté le 09-11-2007 à 08:15:10
Bonjour,
j'ai un pbm d'envoie de fichier et de pièces jointes:
j'encoie un mail sur:
- un compte free: recoit le mail mais vide...
- un compte gmail: s'affiche nickel
Ou est le pbm?
Merci, voilà mon code
Message édité par fredderf le 10-11-2007 à 12:38:38