Je suis nouveau chez php. J'essayais d'envoyer un courrier de php en utilisant ce code.
<?php
$to = '[email protected]';
$subject = 'The subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
J'ai changer les paramètres dans php.ini
[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]
& dans sendmail.ini
# A freemail service example
account Gmail
tls on
tls_certcheck off
Host smtp.gmail.com
from [email protected]
auth on
user [email protected]
password xxxxxxxxx
# Set a default account
account default : Gmail
Maintenant, le code fonctionne avec succès mais je ne reçois aucun courrier.
Vous devez changer le fichier php.ini:
[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 = you@yourdomain
Cela ne fonctionnera pas si localhost est défini, changez donc votre serveur de messagerie.
Le serveur SMTP n'est pas installé par défaut, vous ne pouvez donc pas envoyer d'e-mails directement de localhost. Vous pouvez soit configurer un serveur SMTP sur un serveur local, soit utiliser des serveurs SMTP tiers. Consultez http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp qui vous explique comment envoyer du courrier depuis localhost via un serveur SMTP tiers.
La fonction ne fonctionnera pas sur votre hôte local, car le locahost ne fonctionnera pas en tant que serveur SMTP, téléchargez votre contenu sur un serveur valide sur lequel SMTP est installé, puis lancez l'appel de courrier.
Essayez de définir les choses ci-dessous dans votre php.ini,
OU vous pouvez définir cette option à l'aide d'un script php également,
// Veuillez spécifier votre serveur de messagerie ou un autre serveur de messagerie que vous allez utiliser (par exemple, Gmail, Yahoo)
ini_set("SMTP","mail.YourDomain.com");
// Veuillez spécifier un numéro SMTP. 25 et 8889 sont des ports SMTP valides.
ini_set("smtp_port","25");
Voici le lien qui me donne la réponse:
Installez le "faux sendmail pour Windows". Si vous n’utilisez pas XAMPP, vous pouvez le télécharger ici: http://glob.com.au/sendmail/sendmail.Zip
Modifiez le fichier php.ini pour l'utiliser (commenté les autres lignes):
fonction mail
Pour Win32 uniquement.
SMTP = smtp.gmail.com
smtp_port = 25
Pour Win32 uniquement.
sendmail_from = <e-mail username>@gmail.com
Pour Unix seulement. Vous pouvez aussi fournir des arguments
(default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
(ignorez le bit "Unix uniquement", car nous utilisons actuellement sendmail)
Vous devez ensuite configurer le fichier "sendmail.ini" dans le répertoire où sendmail a été installé:
envoyer un mail
smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com
Votre serveur n'a pas de serveur de courrier local.
Il y a peu de solutions:
J'ai eu ce problème les semaines passées, sur mes boîtes centos, partageant cela pour d'autres ayant également des problèmes avec mail () dans l'envoi de php ... Cela a résolu le problème pour tous mes scripts mail () php.
// Enable the sendmail in selinux
setsebool -P httpd_can_sendmail 1
// Add the following to /etc/postfix/main.cf
relayhost = smtp.server.com
// Then from command line
service postfix restart