web-dev-qa-db-fra.com

Envoyer un email de localhost exécutant XAMPP dans PHP en utilisant le serveur de messagerie GMAIL

J'essaie d'envoyer un email de localhost à mon compte de messagerie yahoo en utilisant la fonction php mail (), le retour indique que j'ai bien envoyé l'e-mail mais je n'ai pas reçu d'email. J'ai lu et essayé de nombreux "moyens simples" d'envoi de courrier électronique, mais les résultats sont décevants, aucun d'entre eux ne fonctionnant pour moi. Vous trouverez ci-dessous le code, les configurations et le message d'erreur. Est-ce que quelqu'un peut m'éclairer avec ça? Merci.

code php

<?php
$to      = '[email protected]';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: [email protected]' . "\r\n" .
           'Reply-To: [email protected]' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully!';
} else {
    die('Failure: Email was not sent!');
}
?>

Configuration pour php.ini (j'utilise un serveur de messagerie gmail)

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

Configuration pour sendmail.ini

smtp_server = smtp.gmail.com
smtp_port = 587
smtp_ssl = tls
error_logfile = error.log
debug_logfile = debug.log
[email protected]
auth_password = mypassword
[email protected]

message d'erreur dans le journal des erreurs de sendmail avec le port 587

13/10/02 13:36:41: Doit d'abord émettre une commande STARTTLS. k4sm129639pbd.11 - gsmtp

21
ani

Voici le lien qui me donne la réponse:

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

[Modify] the php.ini file to use it (commented out the other lines):

[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25

; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (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é:

[sendmail]

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

Pour accéder à un compte Gmail protégé par une vérification à 2 facteurs, vous devez créer un mot de passe spécifique à l'application . ( source )

20
ani

dans le fichier php.ini, décommentez celui-ci

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

et dans sendmail.ini

smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=yourpassword
[email protected]
hostname=localhost

configurer celui-ci..il va fonctionner ... il fonctionne bien pour moi.

merci.

4
Rambabu
[sendmail]

smtp_server=smtp.gmail.com  
smtp_port=25  
error_logfile=error.log  
debug_logfile=debug.log  
[email protected] 
auth_password=gmailpassword  
[email protected]

besoin d'authentifier le nom d'utilisateur et le mot de passe de mail, puis qu'une seule fois peut envoyer avec succès un courrier de localhost

0
poonam

N'oubliez pas de générer un deuxième mot de passe pour votre compte Gmail. Vous utiliserez ce nouveau mot de passe dans votre code. Lis ça:

https://support.google.com/accounts/answer/1858

Sous la section "Comment générer un mot de passe d'application", cliquez sur "Mots de passe d'application", puis sous "Sélectionner l'application", choisissez "Mail", sélectionnez votre appareil et cliquez sur "Générer". Votre deuxième mot de passe sera imprimé à l'écran.

0
Vadzym

Le moyen le plus simple consiste à utiliser PHPMailer et Gmail SMTP. La configuration serait comme ci-dessous.

require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->isSMTP();                            
$mail->Host = 'smtp.gmail.com';            
$mail->SMTPAuth = true;                     
$mail->Username = 'Email Address';          
$mail->Password = 'Email Account Password'; 
$mail->SMTPSecure = 'tls';               
$mail->Port = 587;                  

Vous trouverez un exemple de script et le code source complet à partir d’ici - Comment envoyer un courrier électronique à partir de Localhost en PHP

0
JoyGuru