web-dev-qa-db-fra.com

Échec de la connexion au serveur de courrier électronique sur le port 25 "localhost"

Cette erreur persiste lorsque j'essaie d'envoyer un courrier électronique en PHP:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\dressoholic\register.php on line 50

mon php.ini ressemble à ceci:

[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]

J'utilise mon ordinateur portable comme serveur. Qu'est-ce que je fais de travers? Merci.

63
Loolooii

Vous devez exécuter un serveur de messagerie localement. Si c'est Unix, activez sendmail Si c'est Windows, installez le composant Simple Mail Transfer Server (ne sachant pas si le nom est correct). Par exemple. Pour Windows 2003, suivez ceci: http://msdn.Microsoft.com/en-us/library/8b83ac7t.aspx

29
MK.

Pour envoyer des mails en utilisant la fonction mail php est utilisé. Mais la fonction mail nécessite un serveur SMTP pour l'envoi d'emails. nous devons mentionner l'hôte SMTP et le port SMTP dans le fichier php.ini. Une fois la configuration du serveur SMTP réussie, les mails seront envoyés avec succès via des scripts php.

20
Rubin Porwal

Sur Windows, presque tous les packages AMPP (Apache, MySQL, PHP, PHPmyAdmin) n'incluent pas de serveur de messagerie (mais presque tous les linux nus en possèdent!). Ainsi, lorsque vous utilisez PHP sous Windows, vous devez configurer un serveur de messagerie!

Voici le meilleur et le plus simple des outils: http://smtp4dev.codeplex.com/

SMTP4Dev est un simple outil de serveur de messagerie composé d'un seul fichier qui collecte les courriers qu'il envoie (pour qu'il n'envoie pas réellement de courrier, il les garde simplement pour le développement). Outil parfait.

19
Sliq

Si vous exécutez votre application uniquement sur localhost et qu’elle n’est pas encore en ligne, j’estime qu’il est très difficile d’envoyer un courrier électronique à l’aide de cette méthode.

Une fois que vous avez mis votre candidature en ligne, je pense que ce problème devrait être résolu automatiquement. Mais je pense que ini_set() vous aide à changer les valeurs dans php.ini pendant le temps d'exécution.

9
NullPoiиteя

Tout d’abord, vous n’êtes pas obligé d’utiliser un SMTP sur votre hôte local. Si vous modifiez cette entrée localhost dans le nom DNS du MTA auprès de votre fournisseur d’accès à Internet (qui vous laissera relayer le courrier), cela fonctionnera immédiatement. jouer avec votre propre service de messagerie. Essayez simplement d’utiliser les serveurs SMTP de vos fournisseurs, cela fonctionnera immédiatement.

8
Glenn Plas

La fonction mail de PHP peut envoyer un email dans 2 scénarios:

une. Essayez d'envoyer un email via unix sendmail programme Sous Linux, il exécutera le programme "sendmail", mettra tous les paramètres dans sendmail et le reste.

OR

b. Connectez-vous à serveur de messagerie (en utilisant le protocole smtp et l'hôte/port/nom d'utilisateur/passe de php.ini) et essayez d'envoyer un courrier électronique.

Si php n'arrive pas à se connecter au serveur de messagerie, un avertissement vous en avertira (et vous verrez un tel problème dans vos journaux). Pour le résoudre, installez le serveur smtp sur votre ordinateur local ou utilisez l'un des serveurs disponibles. Comment configurer/configurer smtp vous pouvez trouver sur php.net

3
Maxim