web-dev-qa-db-fra.com

la fonction php mail () ne fonctionne pas

J'ai utilisé la fonction mail () dans le codage php mais je n'ai pas réussi à envoyer de courrier. Avant de continuer, je souhaite développer le contexte d'utilisation de la fonction mail ().

Je n'ai pas hébergé mon site, il est donc sur localhost. J'ai défini smtp, port sendmail_path etc.

Après avoir beaucoup cherché, il me semble que je dois télécharger un serveur de messagerie. J'ai téléchargé un serveur sendmail gratuit et l'ai configuré comme le site le suggérait. Cependant, en vain, quelqu'un m'a dit que je ne pouvais pas utiliser la fonction de messagerie avant d'héberger mon site non seulement sur localhost. Guidez-moi s'il-vous-plaît.

<?php
   $from = "[email protected]"; // sender
   $subject = " My cron is working";
   $message = "My first Cron  :)";

   // message lines should not exceed 70 characters (PHP rule), so wrap it

   $message = wordwrap($message, 70);

   // send mail

   ini_set("SMTP","localhost");
   ini_set("smtp_port","25");
   ini_set("sendmail_from","[email protected]");
   ini_set("sendmail_path", "C:\wamp\bin\sendmail.exe -t");

   mail("[email protected]",$subject,$message,"From: $from\n");

   echo "Thank you for sending us feedback";

?>

ce fichier de configuration my sendmail:

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto

;default_domain=domain.com
[email protected]
auth_password=8888

force_sender=j*****@gmail.com

( ! ) SCREAM: Error suppression ignored for
( ! ) Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to      mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot;    setting in php.ini or use ini_set() in C:\wamp\www\test.php on line 20
8
user1195450

Je pense que vous n'êtes pas configuré correctement,

si vous utilisez XAMPP, vous pouvez facilement envoyer du courrier depuis localhost.

par exemple, vous pouvez configurer C:\xampp\php\php.ini et c:\xampp\sendmail\sendmail.ini pour que gmail envoie du courrier.

dans C:\xampp\php\php.ini recherchez extension=php_openssl.dll et supprimez le point-virgule au début de cette ligne pour que SSL fonctionne pour gmail pour localhost.

dans le fichier php.ini trouver [mail function] et changer

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = [email protected]
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

(utilisez le chemin d'envoi de courrier ci-dessus uniquement et cela fonctionnera)

Maintenant, ouvrez C:\xampp\sendmail\sendmail.ini. Remplacez tout le code existant dans sendmail.ini par le code suivant

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=my-gmail-password
[email protected]

Vous avez maintenant terminé !! créer un fichier php avec la fonction mail et envoyer du courrier depuis localhost.

Mise à jour

Tout d'abord, assurez-vous que PHP prend en charge SSL (recherchez une section "openssl" dans la sortie de phpinfo()).

Vous pouvez définir les paramètres suivants dans votre PHP.ini:

ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
23
ɹɐqʞɐ zoɹǝɟ