J'apprends PHP et j'ai installé Xampp sur mon ordinateur.
Mais j'ai un problème avec la configuration car l'option de courrier électronique ne semble pas fonctionner.
Après avoir fait quelques lectures, je pense que cela a quelque chose à voir avec ce qui suit, trouvé sur mon serveur dans le fichier php.ini
[mail function]
; For Win32 only.
; *hp://*php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost
[Veuillez noter que j'ai changé ci-dessus hp: // de http: // en raison d'une restriction sur ce site Web pour publier un lien hypertexte]
Y a-t-il quelque chose que je dois changer? J'ai vu un logiciel tel que swiftmailer mentionné mais je ne sais pas si Xampp l'a déjà inclus? Tous les conseils seraient grandement appréciés!
Merci James
Mon serveur smtp préféré est hMailServer .
Il a un installateur et un assistant sympa pour Windows. De loin, le serveur de messagerie le plus simple que j'aie jamais installé.
Il peut utiliser un proxy via votre compte gmail/yahoo/etc ou envoyer un e-mail directement.
Une fois installé, le courrier électronique dans xampp ne fonctionne que sans modifications de configuration.
XAMPP aurait dû venir avec un "faux" programme sendmail. Dans ce cas, vous pouvez également utiliser sendmail:
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:/xampp/sendmail/sendmail.exe -t -i"
Sendmail doit avoir un sendmail.ini
avec ça; il doit être configuré comme suit:
# Example for a user configuration file
# Set default values for all following accounts.
defaults
logfile "C:\xampp\sendmail\sendmail.log"
# Mercury
#account Mercury
#Host localhost
#from postmaster@localhost
#auth off
# A freemail service example
account ACCOUNTNAME_HERE
tls on
tls_certcheck off
Host smtp.gmail.com
from EMAIL_HERE
auth on
user EMAIL_HERE
password PASSWORD_HERE
# Set a default account
account default : ACCOUNTNAME_HERE
Bien sûr, remplacez ACCOUNTNAME_HERE par un nom de compte arbitraire, remplacez EMAIL_HERE par un e-mail valide (tel qu'un Gmail ou Hotmail) et remplacez PASSWORD_HERE par le mot de passe de votre e-mail. Maintenant, vous devriez pouvoir envoyer du courrier. N'oubliez pas de redémarrer Apache (à partir du panneau de configuration ou des fichiers batch) pour permettre aux modifications de PHP de fonctionner).
Sauf si vous avez un serveur de messagerie configuré sur votre ordinateur local, définir SMTP = localhost n'aura aucun effet.
Autrefois (il y a longtemps), il suffisait de définir la valeur de SMTP sur l'adresse du serveur SMTP de votre FAI. Cela fonctionne désormais rarement car la plupart des FAI insistent sur l'authentification avec un nom d'utilisateur et un mot de passe. Cependant, la fonction PHP mail () ne prend pas en charge l'authentification SMTP. Elle est conçue pour fonctionner directement avec l'agent de transport de messagerie du serveur local.
Vous devez soit configurer un serveur de messagerie local, soit utiliser des classes PHP qui prennent en charge l'authentification SMTP, telles que Zend_Mail ou PHPMailer. La solution la plus simple, cependant, consiste à télécharger votre script de traitement du courrier sur votre serveur distant.