IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

mailer blat appelé dans fichier .bat non exécuté quand lancé depuis PHP


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut mailer blat appelé dans fichier .bat non exécuté quand lancé depuis PHP
    Bonjour à tous et merci à ceux qui prendront le temps de s'attarder sur ce sujet.

    J'ai un script php lancé à intervalle régulier qui effectue des notifications par mail aux personnes concernées lorsqu'il détecte une modification dans le répertoire qui leur est attribué sur notre serveur FTP. Une boîte aux lettres, en somme.

    J'utilise pour cela le mailer blat qui est un exécutable qui s'appelle en ligne de commande Windows. J'ai donc un petit fichier .bat appelé en PHP avec la fonction exec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('call envoiMailBlat.bat', $output);
    Le .bat s'exécute dans l'ensemble correctement, à l'exception de ce fameux blat qui semble ne pas être appelé du tout. Lorsque je lance le .bat directement par un clic, aucun soucis, je reçois mon mail et tutti frutti.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for /F "tokens=1,2,3 delims=#" %%i in (mails.csv) do (
    	echo %%i > body.csv
    	echo Commande executee : blat body.csv -to %%j -s %%k -p mailer -log logBlat.csv -debug -nomd5 -html -charset UTF-8 >> logCommande.csv
    	blat body.csv -to %%j -s %%k -p mailer -log logBlat.csv -debug -nomd5 -html -charset UTF-8
    )
    Ce n'est vraiment que la ligne appelant blat qui flanche. A côté de ça j'ai ma log "logCommande" qui est écrite, mais la log créée par le mailer, "logBlat", n'apparaît pas. Encore une fois exécutée directement pas de soucis, j'ai mon mail et ma logBlat.

    J'ai donc pensé à un problème de droit, et donné accès total à mon user PHP sur le bat et sur l'exécutable blat, aucun changement. Essayé plusieurs syntaxe PHP, lancé en PHP un bat qui ne ferait qu'appeler ce bat là, et tout un tas de choses farfelus, rien à faire.

    J'arrive à cours d'idée donc si quelqu'un en a une, je suis preneur.

    Merci d'avance.

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai trouvé la solution à mon problème et je pense qu'elle peut aider pour d'autres choses n'ayant rien à voir avec blat.

    Essayer d'appeler directement la commande "blat" dans la fonction exec de mon PHP ne donnait rien, j'ai donc essayé de mettre le chemin entier vers l'exécutable que j'avais mis directement dans System32, ce qui a donné un message d'erreur du type fichier introuvable. Il est pourtant bien là, et je n'ai pas fait de fautes en tapant le chemin.

    Je ne saurais expliquer de manière très détaillée, mais la fourberie est que sur les Windows 64 bit l'appel de au répertoire System32 est implicitement redirigé vers SysWOW64. Parfois non, selon les conditions, étant donné que quand je cliquais directement sur le .bat cela marchait avec un blat.exe dans System32. Donc quand/comment/pourquoi ça ne je ne saurais dire, mais en tout cas copier l'exécutable dans SysWOW64 a fait que son appel depuis PHP, même sans mettre le chemin entier mais juste la commande a résolu le souci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fichier bat d'exécution des scripts
    Par the java lover dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 29/08/2008, 14h28
  2. Bouton pour exporter une table dans fichier BAT
    Par WITER dans le forum Langage
    Réponses: 1
    Dernier message: 08/11/2007, 09h08
  3. Réponses: 26
    Dernier message: 05/10/2006, 17h27
  4. [VBS]appeler un fichier bat
    Par angelus95 dans le forum VBScript
    Réponses: 25
    Dernier message: 26/04/2006, 14h24
  5. Réponses: 5
    Dernier message: 20/01/2006, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo