2010-09-09 10 views
3

Je développe une application PHP et j'ai besoin de tester la fonctionnalité d'envoi d'emails. Le problème est que j'utilise un environnement de développement (wamp sur Windows) donc je suppose que je n'ai pas accès à smtp ou à un serveur de messagerie.App souhaite envoyer un e-mail à localhost

Il semblerait que je devrais installer une application distincte qui servirait de serveur de messagerie. Quel est le moyen le plus simple de le faire (je travaille sur Windows sur wamp), et existe-t-il une autre alternative comme un serveur public pour tester par les développeurs (gratuit s'il vous plait car je l'utiliserai probablement 10 fois jusqu'à l'email la fonctionnalité est modifiée). Alors je suppose qu'il y a des arrangements que je dois changer à mon environnement de développement lui-même? Tout le monde peut faire la lumière sur ce s'il vous plaît.

Merci

Répondre

2

Vous avez besoin d'un serveur SMTP. J'utilise PostCast Server, qui est gratuit et fait le nécessaire.

3

XAMPP est livré avec Mercury pour gérer E-Mails. Il peut parler aux serveurs SMTP via SSL si nécessaire, et fonctionne bien pour moi.

+0

On dirait que j'ai fait un mauvais choix en utilisant wamp. – vla

+0

@vla pas une grosse affaire, il devrait être assez facile d'ajouter Mercure. L'installer séparément, et en spécifiant 'localhost' comme le serveur SMTP dans php.ini devrait faire le travail. –

0

XAMPP est livré avec un "faux" programme sendmail. Si vous utilisez XAMPP, vous pouvez utiliser sendmail comme si: (ignorer le « Pour Unix seulement » avertissement, il fonctionne très bien sur Windows)

[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 devrait avoir un sendmail.ini avec elle; il doit être configuré comme ceci:

# 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 [email protected] 
#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, remplacer ACCOUNTNAME_HERE avec un nom de compte arbitraire, remplacez EMAIL_HERE avec un email valide (comme Gmail ou Hotmail) et remplacez-PASSWORD_HERE avec le mot de passe à votre e-mail. Maintenant, vous devriez être capable d'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.