Bonjour,
en stage de fin d'étude je dois développer un site client.
On m'a aussi demandé d'écrire et d'intégrer un formulaire de contact dans l'interface coté client.
A travers ce formulaire, le client pourra faire une demande (devis par exemple) et celle-ci sera transmis par mail à ses interlocuteurs (Responsable d'agence et responsable secteur principalement).
Après avoir effectué quelques recherches, notamment sur developpez.net, je me suis intéressé à la classe PHPMailer.
J'ai donc téléchargé la dernière version (PHPMailer v_5.0.0) et j'ai écris mon formulaire en m'appuyant sur ce tutoriel et sur ce topic qui ressemble à mon problème.
Je vous donne le code de mon formulaire :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| <?php
require_once("inc/class.phpmailer.php"); /* le chemin est OK */
$destinataire="******@gmail.com"; /* mon mail caché */
set_time_limit(0);
if(isset($_POST['message'])){
$mail = new PHPmailer();
$mail->IsSMTP();
$mail->IsHTML();
$mail->Host="smtp.*****.net"; /* serveur STMP de l'entreprise */
$mail->From=$_SESSION['mail']; /* je recupère le mail du client grâce à la variable de session correspondante */
$mail->FromName=$_SESSION['societe']; /* idem au dessus */
$mail->AddAddress($destinataire);
$mail->AddReplyTo($_SESSION['mail']); /* idem au dessus */
$mail->Subject=$_POST['subject'];
$mail->Body=htmlentities(@$_POST['message']);
if(isset($_FILES["attach"]))
if(is_uploaded_file($_FILES["attach"]["tmp_name"]))
$mail->AddAttachment($_FILES["attach"]["tmp_name"],$_FILES["attach"]["name"]);
//if(!$mail->Send())
// echo $mail->ErrorInfo;
// else
echo "Mail envoyé avec succès.";
echo "<br/>";
$mail->SmtpClose();
unset($mail);
}
?>
<form method="post" action="" enctype="multipart/form-data">
<table width="350" cellpadding="5" cellspacing="0">
<tr>
<td>Type de demande</td>
<td>
<select name="subject" id="subject">
<option value="subject1">Devis</option>
<option value="subject2">Autre</option>
</select>
</td>
</tr>
<tr>
<td>Commentaires</td>
<td><textarea name="message" id="message" rows=10 cols=60></textarea></td>
</tr>
<tr>
<td>Joindre un fichier</td>
<td><input name="attach" type="file" id="attach" /></td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="200000"></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Envoyer" /></td>
</tr>
</table>
</form> |
Cette page s'appelle 'demande.php' et elle est appelé par la page 'index.php' où je gère mes sessions et la connexion à la BDD.
Le problème est que lorsque je clique sur envoyer je reçois l'erreur suivante :
Catchable fatal error: Object of class PHPMailer could not be converted to string in D:\projet\inc\class.phpmailer.php on line 406
La ligne 406 est la suivante :
$address = trim($address);
Je crois comprendre que cela vient du type, alors dans ma page 'demande.php' j'ai essayé de remplacer les ' par des " mais le problème est le même. A vrai dire j'ai essayé de nombreuses combinaisons en désespoir de cause mais toujours le même erreur :/
Alors si quelqu'un a déjà été confronté à ce problème ou a une idée je suis preneur car je n'arrive plus a voir ou sa cloche.
Info complémentaires : je travaille sous wampserver 2.0 avec PHP 5.2.9-1, le serveur smtp est celui de l'entreprise où j'effectue mon stage, il est correcte car j'ai déjà réussi l'envoie d'un mail via un autre script.
Partager