1 votes

Comment obtenir la sortie d'un php script exécuté par un mail piped ?

J'ai configuré une adresse électronique pour que tous les courriels soient transmis à /path/to/script.php.

Je pensais que je recevrais la sortie du script comme une réponse par email mais ça ne marche pas.

Comment puis-je obtenir la sortie du script et envoyer un courriel de réponse avec la sortie comme contenu du courriel ?

(*) Je sais que je peux utiliser mail() à l'intérieur du script mais je n'ai pas les autorisations pour modifier le script, et je ne peux pas copier le script parce qu'il est mis à jour de temps en temps.

0 votes

Y a-t-il une raison pour laquelle vous n'avez pas la permission d'accéder au script ?

0 votes

Oui c'est un script partagé entre plusieurs utilisateurs que seul l'admin peut modifier.

3voto

prabuksara Points 41

Vous pourriez simplement ajouter un autre tuyau et tee le courrier brut dans un fichier temporaire, puis pipe vers le script mentionné en lecture seule, enfin pipe vers un autre script php pour faire le reste.

Le dernier script de php lira la sortie du script en lecture seule et l'adresse de l'expéditeur du fichier temporaire, puis enverra le courrier en utilisant la fonction php mail().

| tee /path/to/tmp/file | /path/to/script.php | /path/to/another.php

BTW, je n'ai jamais utilisé une telle approche et je ne sais pas si c'est possible, mais il semble que La réponse de Can pourrait s'arranger avec macros de ligne de commande Si cela fonctionne, répondez ici et dites-nous comment.

1voto

jammus Points 1796

Je suis désolé, mais à moins que le script soit conçu pour fonctionner correctement, il ne va pas savoir comment répondre automatiquement juste parce que vous êtes piping data le faire.

Si vous ne pouvez pas modifier le script, peut-être devez-vous écrire un autre script frontal qui capture la sortie et fait ce dont vous avez besoin.

1voto

OUM Points 11

Vous pourriez modifier votre configuration d'envoi. Elle devrait être du type

<run your php file with arguments> | sendmail <arguments>

Difficile d'être précis sans connaître votre configuration.

0 votes

Ok, c'est un pas vers la solution, mais comment obtenir l'adresse de l'expéditeur ?

0 votes

Si vous avez accès aux en-têtes du courrier entrant, vous pouvez utiliser une combinaison de commandes grep, cut pour extraire l'adresse de l'expéditeur.

0 votes

Je dois l'écrire dans la commande pipe afin d'utiliser votre solution, je ne sais pas s'il est possible d'accéder aux en-têtes...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X