Envoi de pièces jointes avec phpmailer
christian82000
Messages postés
47
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une application web qui est sensée ,envoyer des messages avec ou sans pièces jointes à l'aide de phpmailer. Lorsqu'il n'y a pas de pièces jointes, tout se déroule normalement. Par contre, si une pièce est jointe, j'ai le message suivant :" Could not instantiate mail ".
Après 2 jours de recherche, toujours pas de solution trouvée, celles proposées sur internet ne fonctionnant pas. Sans doute une erreur de programmation? Je précise que les pièces jointes, au format pdf, sont déjà sur le serveur de mon hébergeur (OVH).
Je vous donne mon code:
Voilà, si quelqu'un, ou quelqu'une! à une idée, qu'il en soit remercié par avance.
Christian
J'ai une application web qui est sensée ,envoyer des messages avec ou sans pièces jointes à l'aide de phpmailer. Lorsqu'il n'y a pas de pièces jointes, tout se déroule normalement. Par contre, si une pièce est jointe, j'ai le message suivant :" Could not instantiate mail ".
Après 2 jours de recherche, toujours pas de solution trouvée, celles proposées sur internet ne fonctionnant pas. Sans doute une erreur de programmation? Je précise que les pièces jointes, au format pdf, sont déjà sur le serveur de mon hébergeur (OVH).
Je vous donne mon code:
<?php //récupération des données du formulaire $from=$_POST["from"]; $Expediteur=$_POST["NomExpediteur"]; $sujet=$_POST["sujet"]; $select=$_POST["select"]; $message=$_POST["Message"]; $pj=$_POST["PieceJointe"]; //déclaration du mail require("PHPMailer/class.phpmailer.php"); //sélection des destinataires. //$select vaut 1 pour les adhérents, 2 pour les non adhérents et null pour l'ensemble des CE, d'où le else qui ne filtre rien si $select vaut null. if(!empty($select)) { $Adresses = $bdd->prepare('SELECT Nom, Prenom, Adherent, Courriel FROM ce WHERE Adherent=?'); $Adresses->execute(array($select)); } else {$Adresses = $bdd->prepare('SELECT Nom, Prenom, Adherent, Courriel FROM ce'); $Adresses->execute(array()); } //préparation du mail While($Contacts = $Adresses->fetch()) { $mail = new PHPMailer(); $mail->Host = 'smtp.mondomaine.fr'; $mail->SMTPAuth = false; $mail->From = $from; $mail->FromName = utf8_decode($Expediteur)." "; $mail->AddAddress( utf8_decode($Contacts['Nom']).' '.utf8_decode($Contacts['Prenom'])." ".$Contacts['Courriel']); $mail->AddCC ('mon.mail@orange.fr'); $mail->Subject=utf8_decode($sujet); $mail->Body=utf8_decode($message); if(!empty($pj)) { $mail->AddAttachment('PiecesJointes/' . $pj); } //envoi du mail $mail->Send(); echo $mail->ErrorInfo; echo 'Mail envoyé avec succès<br>'; } $Adresses->closeCursor(); $bdd=null; ?>
Voilà, si quelqu'un, ou quelqu'une! à une idée, qu'il en soit remercié par avance.
Christian
A voir également:
- Envoi de pièces jointes avec phpmailer
- Telecharger toutes les pieces jointes gmail - Guide
- Votre envoi est réacheminé vers son site de distribution - Forum Consommation & Internet
- Programmer envoi sms - Guide
- Votre envoi est sur son site de distribution. nous le préparons pour le mettre en livraison ✓ - Forum Consommation & Internet
- Messenger envoi impossible - Forum Facebook Messenger
Tout d'abord, merci pour ta réponse.
J'ai testé ta proposition, qui n'a pas résolu le problème, du moins en apparence. Je m'explique : en ajoutant "$mail->isSMTP();", j'obtiens une page blanche, et bien sur le mail ne part pas. Sans cette ligne, on a le message d'erreur "Could not instantiate mail function".
Je pense à un problème de paramétrage de phpmailer....
Deux précisions sont peut-être utiles :
1 : Version php 5.6
2 : version phpmaler 2.0.4
Problème de compatibilité?
Cordialement,
Christian
La version 2.0.4 de PHPMailer semble dater de plus de 5 ans, il serait temps de le mettre à jour ;)
La dernière version stable à ce jour est la 5.2.14 disponible ici : https://github.com/PHPMailer/PHPMailer/releases
Je t'invite donc fortement à mettre à jour PHPMailer.
Tu pourras également trouver des exemples d'utilisation ici : https://github.com/PHPMailer/PHPMailer/tree/master/examples