Bonjour,
Je voudrai envoyer des emails via PHP. J'ai recouru à PHPMailer
j'ai trop cherché sur internet et j'ai vérifié pas mal de chose, mais toujours, j'ai la même erreur qui s'affiche:
Citation:
Could not instantiate mail function
Version imprimable
Bonjour,
Je voudrai envoyer des emails via PHP. J'ai recouru à PHPMailer
j'ai trop cherché sur internet et j'ai vérifié pas mal de chose, mais toujours, j'ai la même erreur qui s'affiche:
Citation:
Could not instantiate mail function
Bonjour,
sans un minimum de code, comment attendre une réponse ?
Code:
1
2
3 <?php require './mails/class.phpmailer.php'; $mail = new PHPMailer();
voilà un bout de code
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php require "C:/wamp/www/PHPMailer/class.phpmailer.php"; $mail = new PHPmailer(); $mail->IsHTML(true); //si votre email contient du HTML $mail->From='mon_mail@gmail.com'; $mail->AddAddress("mail@gmail.com"); $mail->Subject='Alerte'; $mail->Body="test"; if(!$mail->Send()){ echo $mail->ErrorInfo; } else{ echo 'Mail envoyé'; } unset($mail); ?>
je suppose que l'erreur est ligne 18 ?
c'est que tu n'as pas configuré php.ini (SMTP)
ps :avec ce code ce script ne marchera qu'en local !Code:require "C:/wamp/www/PHPMailer/class.phpmailer.php";
j'ai configuré mon php.ini :
et pour leCode:
1
2
3
4
5
6
7
8 [mail function] ;For Win32 only. SMTP =smtp.gmail.com smtp_port =25 sendmail_from =mon_mail@gmail.com
ou je dois placer le dossier du PHPMailer ?Code:
1
2 require "C:/wamp/www/PHPMailer/class.phpmailer.php";
pas sur pour gmail .. je ne connais pas pour le smtp (no du port ? ssl ou pas...)
Normalement on met celui du fournisseur internet
Il faut faire un test avec la fonction mail() pour voir si tout est bon.
et pour le require , je n'ai jamais perler de déplacer le dossier !
Mais si le site doit être hebergé sur le web (serveur linux), "C:\wamp" n'existe pas !
je l'ai essayé avec mon fournisseur mail et le même problème persiste
:(
essaye ça :
et si tu es en train de tester, mets en première ligne de ton code :Code:
1
2 $mail->isSmtp();
afin d'avoir tous les messages d'erreurs.Code:
1
2 error_reporting(-1);
voilà l'erreur que j'ai
Citation:
Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '1.0/no DST' instead in C:\wamp\www\PHPMailer\class.phpmailer.php on line 1925
Mets
On y verra plus claire.Code:error_reporting(E_ALL ^ E_STRICT);
J'ai le même résultat
avec en plus :
est-ce que je dois modifier le timezone? car dans mon php.ini le timezone n'est pas Europe/Paris , c'est Africa/TunisCitation:
SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host.
il n'arrive pas à se connecter au serveur SMTP, donc il ne peut pas envoyer de mail....
c'est à cause du timezone ?
Nan pas de rapport.
Tu as mis quoi comme paramètres dans php.ini ? T'as pensé à redémarrer Apache après la modification ?
oui, je l'ai redémarré
dans mon php.ini :
Code:
1
2
3
4
5
6
7
8 [mail function] ;For Win32 only. SMTP =smtp.gmail.com smtp_port =25
Tiens, lis ce tutoriel :
http://www.web-development-blog.com/...ler-and-gmail/
Je ne pense pas que tu puisses accéder au smtp de gmail sur le port 25, ça doit être en ssl....
je vous remercie pour votre effort,
j'ai testé avec le port 465 et il m'affiche toujours qu'il ne peut pas se connecter au serveur smtp
maintenant meme la fonction de base mail() ne fonctionne pas
J'ai essayé ce scriptj'ai toujours : Echec :( :triste:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('SMTP', 'smtp.gmail.com'); ini_set('smtp_port', 465); ini_set('sendmail_from', 'mon_mail@gmail.com'); if (mail('destinataire@gmail.com', 'sujet', 'message')) echo 'E-mail envoyé!'; else echo 'Echec...'; ?>
Il faudrait peut-être que tu t'identifies sur le serveur (avec username et password).
qu'est ce je dois ajouter dans le php.ini?
J'ai le fichier sendmail.ini suivant :
Code:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 ; configuration for fake sendmail ; if this file doesn't exist, sendmail.exe will look for the settings in ; the registry, under HKLM\Software\Sendmail [sendmail] ; you must change mail.mydomain.com to your smtp server, ; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup) ; emails delivered via IIS's pickup directory cause sendmail to ; run quicker, but you won't get error messages back to the calling ; application. smtp_server=smtpout.secureserver.net ; smtp port (normally 25) smtp_port=25 ; SMTPS (SSL) support ; auto = use SSL for port 465, otherwise try to use TLS ; ssl = alway use SSL ; tls = always use TLS ; none = never try to use SSL smtp_ssl=tls ; the default domain for this server will be read from the registry ; this will be appended to email addresses when one isn't provided ; if you want to override the value in the registry, uncomment and modify default_domain=gmail.com ; log smtp errors to error.log (defaults to same directory as sendmail.exe) ; uncomment to enable logging error_logfile=error.log ; create debug log as debug.log (defaults to same directory as sendmail.exe) ; uncomment to enable debugging ;debug_logfile=debug.log ; if your smtp server requires authentication, modify the following two lines auth_username=mon_mail auth_password=mon_pswrd ; if your smtp server uses pop3 before smtp authentication, modify the ; following three lines. do not enable unless it is required. pop3_server=pop.gmail.com pop3_username=mon_mail pop3_password=mon_pswrd ; force the sender to always be the following email address ; this will only affect the "MAIL FROM" command, it won't modify ; the "From: " header of the message content ; force the sender to always be the following email address ; this will only affect the "RCTP TO" command, it won't modify ; the "To: " header of the message content ;force_recipient= ; sendmail will use your hostname and your default_domain in the ehlo/helo ; smtp greeting. you can manually set the ehlo/helo name if required hostname=Safa
c'est du chinois pour toi ?
On trouve cette info avec la moindre recherche sur le web !
Es tu OBLIGE, de passer par gmail ?Citation:
; if your smtp server requires authentication, modify the following two lines
auth_username=mon_mail
auth_password=mon_pswrd
lorsque le site sera en ligne , ce sera un autre, ici c'est juste pour test en local?
Ton fournisseur internet ne te fournit pas un compte smtp ?
oui mais je suis en phase de test en local
et même de cette manière le mail n'est pas envoyé et la fonction mail() est désactivée
Le problème c'est que si tu fais tout plein d'arrangement spécifique pour que ça marche en local, une fois passé sur ton serveur de production c'est pas dit que ça fonctionne....
tu devrais tester directement en prod avec des pages cachées ou accessibles que par toi....
cela est stressant. J'ai testé avec le serveur smtp de mon fournisseur et de même :(
si je désinstalle wamp et le réinstaller? cela peut changer la situation? :calim2:
voilà, c'est en réinstallant le wamp que la fonction mail de base fonctionne :D
Il me reste le PHPMailer , j'ai toujours le problème de "Could not instantiate mail function "
Y-t-il quelques choses que je dois changer dans la class.phpmailer.php ?