web-dev-qa-db-fra.com

configuration de la messagerie php dans xampp

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

24
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.

14
Byron Whitlock

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).

9
kevinji

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.

5
David Powers