web-dev-qa-db-fra.com

Sendmail Wamp Php

J'ai passé toute la matinée à chercher cela sur Internet pour essayer de trouver une solution à ce sujet. J'ai installé le serveur Wamp sur Windows 8.1 et j'essaie d'envoyer des mails avec sendmail ( http://glob.com.au/sendmail/ ) et mon compte gmail

Lorsque je configure sendmail pour utiliser le port nº 465, j'obtiens toujours cette erreur: Erreur de socket # 10060 La connexion a expiré

Si j'essaie d'utiliser le port nº 587, j'obtiens cette ligne dans le journal des erreurs: Connexion fermée gracieusement. Mais aucun e-mail n'est envoyé.

Ceci est mon fichier sendmail.ini

[sendmail]
smtp_server=smtp.gmail.com
;I tried both: 587, 465
smtp_port=587
; I tried: "blank, auto ssl, tls, none"
smtp_ssl=
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=mypass
hostname=localhost

Et ceci est le fichier php.ini

[mail function]
smtp_port = 465
sendmail_path="C:\wamp\sendmail\sendmail.exe -t"
mail.add_x_header = On

ssl_module est actif sur Apache et php utilise l'extension php_open_ssl et php_socket.

J'ai aussi essayé d'utiliser un stunnel sans succès

EDIT 27/01/2014

J'ai mis smtp_port = 465 et smtp_ssl = ssl sur sendmail.ini. En outre, j'ai défini que sendmail.exe doit s'exécuter en tant que programmes Windows XP SP3. Après cela, lorsque j'exécute sendmail.exe sur la console Windows, il envoie correctement l'e-mail. Cependant, lorsque Wamp essaie d'envoyer des e-mails. J'obtiens cette erreur dans les journaux d'erreurs de sendmail .: Erreur de socket # 10060 La connexion a expiré.

Voici le code que j'utilise pour tester sendmail:

<?php
$email = "[email protected]";
$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,How are you?";
$headers = 'From: ' .$email . "\r\n".'Reply-To: ' . $email. "\r\n".'X-Mailer: PHP/' . phpversion();
if (mail($to, $subject, $body, $headers)) echo("<p>Email successfully sent</p>");
else echo("<p>Email delivery failed</p>");
?>
22
Rumpelstinsk

Enfin, j'ai trouvé la réponse.

Le problème est que sendmail doit être exécuté en tant qu'administrateur. C'est la solution pour aider n'importe qui dans ma situation.

  1. Faites un clic droit sur sendmail.exe
  2. Propriétés
  3. Compatibilité
  4. Modifier la configuration pour tous les utilisateurs
  5. Exécuter en tant que Windows XP SP 3
  6. Exécuter en tant qu'administrateur

Et économisez: D

2 jours perdus dans ce non-sens :(

67
Rumpelstinsk

En tant qu'extension de la réponse acceptée:

Si vous exécutez la fonction d'envoi de courrier en PHP, une boîte de dialogue peut apparaître pour vous demander d'exécuter l'application "envoyer du courrier" en tant qu'administrateur. Lorsque vous cliquerez sur "Oui", une boîte de dialogue d'invite de commandes s'affichera et rien ne se passera et votre page se bloquera jusqu'à la fermeture de l'invite de commandes. La fonction de messagerie retournera même "True", mais en réalité aucun message n'a été envoyé.

Pour résoudre ce problème, suivez les mêmes instructions que la réponse acceptée et exécutez également le serveur (ou IDE) en tant qu'administrateur, soit:

1) Cliquez avec le bouton droit sur le programme (par exemple serveur, ide, invite de commande) et cliquez sur "Exécuter en tant qu'administrateur"

2) OR Programme de clic droit> propriétés> compatibilité> Cochez exécuter en tant qu'administrateur

Par exemple, si vous utilisez le PHP dans le serveur intégré, exécutez la commande Invite en tant qu'administrateur et démarrez le serveur normalement en utilisant

C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder

Bien sûr, modifiez les chemins d'accès aux fichiers en fonction de vos besoins.

J'espère que cela aide quelqu'un !!! A passé des âges là-dessus!

8
Yahya Uddin

Le problème est que sendmail doit être exécuté en tant qu'administrateur. C'est la solution pour aider n'importe qui dans ma situation.

  1. Faites un clic droit sur sendmail.exe
  2. Propriétés
  3. Compatibilité
  4. Modifier la configuration pour tous les utilisateurs
  5. Exécuter en tant que Windows XP SP 3
  6. Exécuter en tant qu'administrateur
  7. si vous utilisez gmail, vous devez créer un nouveau mot de passe "Vos mots de passe spécifiques à l'application"
6
juan.conde

Compatibility Troubleshooter

Sur Windows 10, j'ai trouvé que la seule méthode qui fonctionnait était d'exécuter l'utilitaire de résolution des problèmes de compatibilité.

  1. Faites un clic droit sur sendmail.exe
  2. Cliquez sur "Propriétés"
  3. Sélectionnez l'onglet Compatibilité.
  4. Cliquez sur "Exécuter l'utilitaire de résolution des problèmes de compatibilité".
  5. Laissez Windows le réparer automatiquement.
1
Matt