web-dev-qa-db-fra.com

php envoyer un mail de localhost

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.

15
Sohil Desai

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.

4
mram888

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. 

3
Mittal Patel

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.

1
K Cloud

Essayez de définir les choses ci-dessous dans votre php.ini,

  1. "SMTP" à "mail.YourDomain.com"
  2. "smtp_port" à "25"

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");
0
Manish Chauhan

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
0
Mani Kandan

Votre serveur n'a pas de serveur de courrier local. 

Il y a peu de solutions: 

  • Installez le serveur de messagerie local si vous avez les droits suffisants
  • Modifiez vos paramètres PHP pour utiliser un autre serveur de messagerie (autres que les serveurs de messagerie ouverts ou basés sur l'authentification, tels que Gmail, Yahoo, etc.)
  • Utilisez l'une des bibliothèques de messagerie disponibles prenant en charge IMAP/POP3 pour gérer l'envoi de courrier. SwiftMailer ou Pear Mail sont l’un des plus couramment utilisés.
0
Tomasz Banasiak

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
0
wieljer