Salut,
je veux envoyer un mail à partir d'un formulaire. Je veux que l'utilisateur puisse envoyer une pièce jointe en plus des champs texte saisis.
j'ai écrit ce code mais j'ai toujours un problème de transfert ( move_uploaded_file($temp, ) est tjrs false)
voila le bout de code php relatif à la pièce jointe
if (!empty($_POST)) #si le formulaire n'est pas vide
{
//------------entete
$delimiteur="------=".md5(uniqid(rand()));
$entete="MIME-Version:1.0\r\n";
$entete.="Content-Type:multipart/mixed;boudary=".$delimiteur."\r\n";
$entete.="\r\n";
//-----------le corps de l'email: le texte
$msg="--$delimiteur\r\n";
$msg.="Content-Type:text/plain; charset=\"iso-8859-1\"\r\n";
$msg.="Content-Transfer-Encoding:8bit\r\n";
$msg.="\r\n";
$msg.="ceci un email d'essai r\n";
$msg.="\r\n";
if(strlen($_FILES['attachement']['name']))
{
$rep = "upload/"; # répertoire temporaire d'upload
$erreur = false; // pas encore d'érreur
//------------Le message : le 1er fichier
$fichier = $_FILES['attachement'];
$temp = $fichier['tmp_name'];
$name=$fichier['name'];
$size=$fichier['size'];
$type=$fichier['type'];
$destination = $rep.$name;
if (!@is_uploaded_file($temp ))
{$erreur =true;
print( "Téléchargement de ".$name." impossible");
}
elseif(!@move_uploaded_file($temp, $destination))
{$erreur = true;
print("Problème de transfert de ".$name);//c'est là que j'ai un problème
}
else{
if ($fp=@fopen($destination,"rb")){
$fichierAttache=@fread($fp,$size);
@fclose($fp);
print("lecture de fichier reussie");
$piecejointe=chunk_split(base64_encode($fichierAttache));}
else{
$erreur=true;
print("Problème de lecture du fichier".$name);}
if(!($erreur))
{
$msg.="--$delimiteur\r\n";
$msg.="Content-Type:".$type."; name=".$name."\r\n";
$msg.="Content-Transfer-Encoding: base64\r\n";
$msg.="Content-Disposition: attachment; filename=".$name."\r\n";
$msg.="\r\n";
$msg.=$piecejointe."\r\n";
$msg.="\r\n\r\n";
$msg.="--$delimiteur--\r\n";
$to="toto@yahoo.fr";
$from="info@server.fr";
mail($to,"test de piece jointe",$msg,$entete);
}}}}
?>
Je ne sais pas sur quel critère on choisit le répertoire de transfert (ici upload).
J'ai une question à propos de la fonction mail() de php, comment lui ajouter un paramètre pour avoir une connexion avec authentification sur le serveur smtp? j'ai réussi à me connecter à un serveur smtp avec un mot de passe en utilisant le package mail de pear mais je ne sais pas comment faire pour ajouter une pièce jointe avec pear.
voila, et merci par avance.

