Envoi mail en ligne de commande sous Windows 7 [Résolu]

Signaler
Messages postés
18
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
21 juin 2013
-
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjour,
J'ai un script PHP qui envoie un mail lorsque je l'exécute dans le navigateur via easyPHP.

lorsque j'exécute cette fois ci le script PHP en ligne de commande:
Dans l'invite de commande je fais:
cd "C:/EasyPHP5.2.10/mail"
php mail.php


[*] ça me renvoie une erreur sous windows 7
[*] ça marche sous XP.

Le problème c'est que la machine que je dois utiliser tourne sous windows 7.

J'ai désactiver le parefeu mais rien à faire.

Quelqu'un peut-il m'aider?

Voci le message d'erreur:
Warning mail(): Failed to connect to mailserver at 'mail.orange.com' port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

8 réponses

Messages postés
18
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
21 juin 2013

Après moult réflexions et vérifications, j'ai enfin trouvé la cause du problème. C'est le parefeu de l'antivirus, je l'ai juste désactivé et tout marche Nikel.
Merci AlexN pour ton aide.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
Bonjour,
Avez-vous essayé de lancer la commande en mode administrateur (Démarrer -> CMD (CTRL+SHIFT)) ?
Messages postés
18
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
21 juin 2013

Bonsoir AlexN,
Merci pour l'attention portée à mon problème.
Oui, j'ai exécuté la commande en mode administrateur et c'est pareil, j'ai le message d'erreur.
Messages postés
18
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
21 juin 2013

En fait,le script doit charger une base de données et envoyer un mail avec quelques paramètres.
La chargement de la BD fonctionne bien en ligne de commande, ce n'est que lors de l'envoie du mail que j'ai le message d'erreur et le mail n'est pas envoyé. Pourtant lorsque j'exécute le script dans le navigateur tout marche à merveille.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
Il faudrait plus d'informations pour comprendre. Avez-vous activé les traces d’exécutions et les messages d'erreurs complets ?

Dans un fichier de script :

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);


ou

dans le php.ini

display_errors = On
error_reporting = E_ALL 


ou dans le .htaccess :

php_flag display_errors on
php_value error_reporting 32767


Les constantes php
Messages postés
18
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
21 juin 2013

Bonjour,
Comme demandé, j'ai ajouté dans mon code:
ini_set('display_errors', 'On');
error_reporting(E_ALL);


et j'obtiens 2 fois le même message d'erreur:

C:\EasyPHP5.2.10\www\mail>php mail.php
PHP Warning: mail(): Failed to connect to mailserver at "mail.orange.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\EasyPHP5.2.10\www\mail\mail.php on line 71

Warning: mail(): Failed to connect to mailserver at "mail.orange.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\EasyPHP5.2.10\www\mail\mail.php on line 71

Pourtant ce code s'exécute bien dans le navigateur sous windows 7 et en ligne de commande sous windows XP.

Une question y a t'il un moyen d'automatiser l'exécution d'un script PHP sans passer par la ligne de commande (création d'un fichier batch)????
Messages postés
18
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
21 juin 2013

J'ai recopié le dossier EasyPHP de Windows 7 et j'ai remplacé celui de Windows XP par ce dernier histoire de voir si c'est un problème de config. Et résultat: l'exécution du script en ligne de commande marche, ce qui me pousse à penser que le problème serait lié à Windows 7.
N' y a t'il pas une config à faire sur Windows 7 pour que la fonction mail fonctionne en ligne de commande???
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
Ah sécurité ! Quand tu nous tiens.
Deux parefeu pour une seule machine ? Est-ce bien nécessaire ?


Une question y a t'il un moyen d'automatiser l'exécution d'un script PHP sans passer par la ligne de commande (création d'un fichier batch)????


Sur les distributions serveur de Windows il existe une commande at, équivalente du cron d'UNIX.
Sinon il faut utiliser des programmes externes comme cronw ou des services web, taper "online cron", par exemple.