|
|
|
|
move_uploaded_file($temp, )est tjrs false)
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);
}}}}
?>
j'ai essayé d'envoyer une pièce jointe situé sur ss le même répertoire que mon fichier qui contient le fichier.php et le fichier.html. J'ai réussi à envoyer cette pièce jointe, avec le package mail_mime de PEAR.
Mon problème mnt c'est le fichier qui doit être envoyé par le formulaire. Est ce que je ne peux pas tester la validité de mon code en local?
include('Mail/Mail.php');
include('Mail/mime.php');
$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = 'exemple.jpg';
$crlf = "\n";
$hdrs = array(
'From' => 'info@toto.com',
'Subject' => 'Test mime message',
'To'=>'toto@yahoo.fr'
);
$params = array(
'host' => 'smtp.c2.corpease.net',
'port' => '25',
'auth'=>true,
'username'=> 'info@toto.com',
'password' => 'xxx'
);
$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'images/jpg');
//do not ever try to call these lines in reverse order
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp", $params);
if (PEAR::isError($mail_object))
{
print "<p>construction de l'objet 'Mail' ratée car ";
die($mail_object->getMessage());
} else
{
print "<p>objet 'Mail' construit !";
}
$send_result = $mail_object->send('toto@yahoo.fr',$hdrs,$body);
if (PEAR::isError($send_result))
{
print "<table >
<tr><td bgcolor='#B22222'><font color='#FFFFFF'> This service is not available now. Please try later.</font>
</td></tr>
</table> ";
die($send_result->getMessage());
} else
{
print "<table >
<tr><td bgcolor='#B22222'><font color='#FFFFFF'> An email is sent </font>
</td></tr>
</table";
}
?>
PS:J'utiliseEasyphp pour developper mon code. Help!!please |
ça marche, j'ai ajouté ces lignes et j'ai crée un dossier unpload ss le même repertoire que mes fichiers .html et .php
Le problème maintenat c'est que je ne sais pas comment ça va se passer si j'heberge mon site. c'est sur qu'ils ont un dossier upload propre à tt le serveur (j'imagine)
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);
}
if(!($erreur))
{
$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = $destination;
$crlf = "\n";
apparemment, je suis entrain de poser des questions et y répondre moi même . |
voila le résumé de la solution:
include('Mail/Mail.php');
include('Mail/mime.php');
$rep = "upload/"; # répertoire temporaire d'upload
if(strlen($_FILES['attachement']['name']))
{
$erreur = false; // pas encore d'erreur
//------------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);
}
if(!($erreur))
{
$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = $destination;
$crlf = "\n";
$hdrs = array(
'From' => '',
'Subject' => 'c un test',
'To'=>'toto@yahoo.fr',
'Reply-To'=>'toto1@yahoo.fr'
);
$params = array(
'host' => 'smtp.c2.corpease.net',
'port' => '25',
'auth'=>true,
'username'=> 'info@smtp.net',
'password' => '-------'
);
$mime = new Mail_mime($crlf);
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, $type);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp", $params);
if (PEAR::isError($mail_object))
{
print "<p>construction de l'objet 'Mail' ratée car ";
die($mail_object->getMessage());
} else
{
print "<p>objet 'Mail' construit !";
}
$send_result = $mail_object->send('toto@yahoo.fr',$hdrs,$body);
if (PEAR::isError($send_result))
{
print "This service is not available now. Please try later.";
die($send_result->getMessage());
} else
{
print " An email is sent ";
@unlink($destination); //pour liberer le fichier temporaire créé
}
}}
pour ajouter un autre fichier joint il suffit de faire un autre test sur le 2ème fichier indépendemment du 1er. |
| 21/01 02h32 | [Langages] Envoyer un mail avec pièce jointe | Langages |
| 16/02 14h32 | Envoyer de gros fichiers (pièces jointes) par mail | Messagerie électronique |
| 19/01 14h11 | [Outlook Express] Pièces jointes impossibles à envoyer | Microsoft Outlook |
| 13/06 09h21 | Outlook bloque les pièces jointes | Microsoft Outlook |
| 13/05 23h47 | Messagerie, pages web et MTU | Internet |
| 13/06 20h08 | Outlook 2007 envoi mail pièce jointe | 20 |
| 01/07 12h14 | Envoi mail pièce jointe poste client | 0 |
| 18/06 14h55 | Mail +piece jointe sous fedora | 1 |
| 20/11 19h51 | Windows mail /pieces jointes. La Galére | 0 |
| 24/09 10h50 | Windows mail /pieces joints | 3 |
![]() | Foxmail - Les clients-mail sont nombreux sur Internet et ils rivalisent tous d'ingéniosité pour attirer le plus d'adepte. En voilà... | Catégorie: Courrier électronique Licence: Freeware/gratuit |
![]() | Windows XP SP2 - Les Service Packs constituent un moyen pratique, tout en un, d'accéder aux derniers pilotes, outils et améliorations en... | Catégorie: Librairies (DLL) Licence: Freeware/gratuit |
![]() | Complément de Microsoft Office 2007 : Enregistrement en PDF dans Microsoft - Ce téléchargement vous permet d'exporter et d'enregistrer des fichiers au format PDF dans huit programmes de Microsoft... | Catégorie: Bureautique Licence: Freeware/gratuit |
![]() | PerfectToolsXP - PerfectToolsXP 2 vous permettra d'obtenir le maximum de Windows XP. Il rassemble 42 modules différents, un tout en un, se... | Catégorie: Optimisation Licence: Freeware/gratuit |
![]() | Joint Operations : Escalation | Catégorie: Jeu vidéo PC | 29.45 € Amazon.fr |
![]() | One Piece: Pirates' Carnival | Catégorie: Jeu vidéo Gamecube | |
![]() | One Piece Grand Battle! | Catégorie: Jeu vidéo Gamecube | |
![]() | Joint Operations | Catégorie: Jeu vidéo PC | 9.90 € Rue du Commerce |