Si tu as des soucis avec mail(), il existe la classe PHPMailer qui est plus complète.
Si tu as des soucis avec mail(), il existe la classe PHPMailer qui est plus complète.
en fait, ce n'est pas que j'ai des soucis avec mail() mais que je n'arrive pas a envoyer en local avec mamp. Donc, je ne sais s cela viens de ma configuration, de mail(), de php, de mamp....., et je ne sais pas comment arriver a trouver d'ou viens le problème. mais je vais regarder phpmailer
même avec phpmailer, j'obtiens :A croire que je ne peux vraiment pas envoyer en local de mon mac.Erreur : Could not instantiate mail function.
Je pense que tu n'as pas suivi ce qu'on t'a indiqué pour ton php.ini
voilà le php.ini (/Applications/MAMP/conf/php5.6.10/php.ini):
j'ai fait pareil avec le php(/Applications/MAMP/conf/php7.0.0/php.ini) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 For Unix only. You may supply arguments as well (default: "sendmail -t -i"). SMTP = smtp.orange.fr smtp_server = smtp.orange.fr smtp_port = 25 sendmail_from =monMailPerso@orange.fr@orange.fr
qu'est-ce que je n'ai pas fait correctement?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). SMTP = smtp.orange.fr smtp_server = smtp.orange.fr smtp_port = 25 sendmail_from = monMailPerso@orange.fr
Pourquoi tout est en double dans ton premier fichier ?
Déjà regarde dans ton phpinfo() quel est le fichier php.ini utilisé.
Ensuite tu dois seulement avoir besoin de SMTP et smtp_port, commente tout le reste
http://php.net/manual/fr/mail.config....sendmail-from
Et redémarre ton serveur.
Au pire, remet un php.ini neuf.
donc, j'ai bien commenté ceux qui ne servent pas dans les 2 php.ini :
vérifié la version de php (au pire avec mamp, on peux passer de 5.6.10 a 7 facilement.)et j'ai relancé les serveurs (2 fois plutot qu'une même si cela ne sert a rien).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). SMTP = smtp.orange.fr ;smtp_server = smtp.orange.fr smtp_port = 25
même résultats autant avec phpmailer que sans
Le port smtp orange c'est 465
http://assistance.orange.fr/mobile-t...-48856#onglet2
(ça ce n'est pas une question PHP, c'est plutôt toi qui devrait contrôler/chercher ça).
Montre nous ton code PHPMailer sinon.
je me suis pas cassé la tête, j'ai repris le code indiqué ici :http://www.connecty.fr/tutoriels/env...-phpmailer.php, pour le mettre dans une page test.
Ce qui donne :
et le résultat : Erreur : Could not instantiate mail function.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php require('phpmailer/class.phpmailer.php'); $mail = new PHPMailer(); $mail->Host = 'smtp.orange.fr'; $mail->SMTPAuth = false; $mail->Port = 25; // Par défaut // Expéditeur $mail->SetFrom('uneDeMesAdresse@orange.fr ', 'Nom Prénom'); // Destinataire $mail->AddAddress('uneAutreAdresse@orange.fr', 'Nom Prénom'); // Objet $mail->Subject = 'Objet du message'; // Votre message $mail->MsgHTML('Contenu du message en HTML'); // Envoi du mail avec gestion des erreurs if(!$mail->Send()) { echo 'Erreur : ' . $mail->ErrorInfo; } else { echo 'Message envoyé !'; } ?>
ah, et j'ai changé le port. (j'avais pourtant vu dans un post plus heaut que c'était 25, mais comme tu dit, j'aurais du vérifier).
Ajoute :
pour ne plus passer par la fonction mail de PHP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $mail->IsSMTP();
rien a faire.
j'ai rajouter ta ligne sous l'envoie du message
j'ai bien remis le port 465 que j'avais zappé avant le premier test.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $mail->MsgHTML('Contenu du message en HTML'); $mail->IsSMTP();
et résultat rien : page blanche alors qu'il devrait y avoir soit l'erreur soit message envoyé.
du coup, j'ai testé en rajoutant un echo 'test' que j'ai placé avant le test d’envoi du mail -> il apparait
et après le test -> page blanche. c'est donc bien l'envoie de mail qui pose problème, que ce soit par phpmailer ou mail().
j'ai testé aussi avec le port 25 (au cas ou), et en remettant mamp en php 5.6.10, même résultats.
Tu n'as vraiment aucune erreur des tes fichiers de log ?
non, j'ai ouvert la console pour essayer de voir si une erreur remontait, mais rien, à moins que je ne sache pas où regarder, ou qu'il y ai un autre moyens de voir les erreurs.
Si tu parles de la console du navigateur, ce n'est pas ça.
Tu dois avoir un fichier de log. Son emplacement est indiqué dans le phpinfo() encore une fois.
oki, j'ai regardé le error_log de mamp :
apparement, il ne trouve pas la class SMTP. j'avoue que je suis un peu dépassé.[14-May-2016 14:21:54 Europe/Berlin] PHP Fatal error: Uncaught Error: Class 'SMTP' not found in /Users/xxxxxxxxxxxx/Sites/eshop/PHPMailer/class.phpmailer.php:1439
Stack trace:
#0 /Users/xxxxxxxxxxxx/Sites/eshop/PHPMailer/class.phpmailer.php(1522): PHPMailer->getSMTPInstance()
#1 /Users/xxxxxxxxxxxx/Sites/eshop/PHPMailer/class.phpmailer.php(1459): PHPMailer->smtpConnect(Array)
#2 /Users/xxxxxxxxxxxx/Sites/eshop/PHPMailer/class.phpmailer.php(1296): PHPMailer->smtpSend('Date: Sat, 14 M...', 'This is a multi...')
#3 /Users/xxxxxxxxxxxx/Sites/eshop/PHPMailer/class.phpmailer.php(1176): PHPMailer->postSend()
#4 /Users/xxxxxxxxxxxx/Sites/eshop/test.php(26): PHPMailer->send()
#5 {main}
thrown in /Users/xxxxxxxxxxxx/Sites/eshop/PHPMailer/class.phpmailer.php on line 1439
a tout hasard, je suis allé voir la ligne cité dans class.phpmailer.php:
mais cela ne m'apporte pas plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function getSMTPInstance() { if (!is_object($this->smtp)) { $this->smtp = new SMTP; } return $this->smtp; }
J'ai même été changé le
$mail->IsSMTP(); que tu m'a fait mettre par
$mail->isSMTP(); parceuqe la fonction étée écrite ainsi dans le class.phpmailer.php, mais rien, rien rien, ou plutot toujours le même class SMTP not found in.....
Il faut charger l'autoloader et pas class.phpmailer.php
Suis bien les exemples de la doc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part require '../PHPMailerAutoload.php';
https://github.com/PHPMailer/PHPMail...ples/smtp.phps
Et tu devrais configurer ton serveur local pour qu'il affiche les erreurs.
bon, apparemment, le test est passé, me rest plus qu'a adapté cela à mon cas. je reviendrais pour dire si tout s'est bien passé.
Merci encore sabotage
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager