Programmation » [Postfix] Lancer un script à la réception d'un email
[Postfix] Lancer un script à la réception d'un email
Publié le 01/05/2007 @ 20:34:48,
Par cauetHello,
Toutes mes installations sont en Postfix (Maildir + Procmail)
Je voudrais exécuter un script à la réception d'un email.
C'est jouable?
J'ai googlé, mais rien trouvé de bien précis..
Merci tertous!
Toutes mes installations sont en Postfix (Maildir + Procmail)
Je voudrais exécuter un script à la réception d'un email.
C'est jouable?
J'ai googlé, mais rien trouvé de bien précis..
Merci tertous!
[Postfix] Lancer un script à la réception d'un email
Publié le 01/05/2007 @ 23:25:04,
Par philfrDans /etc/aliases, tu mets:
luser: |/home/cauet/monscript
Et tout mail envoyé à luser@tonhost va déclencher le script. Avec le contenu du mail en stdin du script.
Ça marche avec tous les MTA unix Vérifie juste où se trouve ton fichier aliases et sous quel format car postfix permet un peu de tout (config alias_maps et alias_database).
man aliases(5) t'aidera aussi.
luser: |/home/cauet/monscript
Et tout mail envoyé à luser@tonhost va déclencher le script. Avec le contenu du mail en stdin du script.
Ça marche avec tous les MTA unix Vérifie juste où se trouve ton fichier aliases et sous quel format car postfix permet un peu de tout (config alias_maps et alias_database).
man aliases(5) t'aidera aussi.
[Postfix] Lancer un script à la réception d'un email
Publié le 01/05/2007 @ 23:53:40,
Par cauetBon, ca ne va pas aussi simplement que je pourrais l'imaginer.
sms: |/usr/bin/php5 /home/smsaction/automation/mailtosms.php
Erreur (par retour mail):
<sms@mail.smsaction.be>: cannot append message to file
/home/smsaction/automation/mailtosms.php: file is executable
si je fais:
sms: |/home/smsaction/automation/mailtosms.php
avec #!/usr/bin/php5 en tête de script.
Aucun retour mail mais ceci en log:
May 1 23:47:04 ns1 postfix/qmgr[20968]: AE30C7E17: from=<mickael@xxxx.be>, size=1273, nrcpt=1 (queue active)
May 1 23:47:05 ns1 local[21201]: fatal: execvp /home/smsaction/automation/mailtosms.php: No such file or directory
May 1 23:47:05 ns1 postfix/qmgr[20968]: 875B47D42: removed
May 1 23:47:05 ns1 postfix/local[21200]: AE30C7E17: to=<sms@mail.smsaction.be>, relay=local, delay=0.32, delays=0.29/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure. Command output: local: fatal: execvp /home/smsaction/automation/mailtosms.php: No such file or directory )
May 1 23:47:05 ns1 postfix/smtpd[21195]: disconnect from ulysse.talessa.com[85.234.192.2]
Idée?
Niveau code, on s'en fou un peu mais voilà pour le moment:
#!/usr/bin/php5
<?php
$stdin = fopen('php://stdin', 'r');
mail("mickael@xxxxxx.be", "Reception SMS", "retour -->".$stdin);
?>
sms: |/usr/bin/php5 /home/smsaction/automation/mailtosms.php
Erreur (par retour mail):
<sms@mail.smsaction.be>: cannot append message to file
/home/smsaction/automation/mailtosms.php: file is executable
si je fais:
sms: |/home/smsaction/automation/mailtosms.php
avec #!/usr/bin/php5 en tête de script.
Aucun retour mail mais ceci en log:
May 1 23:47:04 ns1 postfix/qmgr[20968]: AE30C7E17: from=<mickael@xxxx.be>, size=1273, nrcpt=1 (queue active)
May 1 23:47:05 ns1 local[21201]: fatal: execvp /home/smsaction/automation/mailtosms.php: No such file or directory
May 1 23:47:05 ns1 postfix/qmgr[20968]: 875B47D42: removed
May 1 23:47:05 ns1 postfix/local[21200]: AE30C7E17: to=<sms@mail.smsaction.be>, relay=local, delay=0.32, delays=0.29/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure. Command output: local: fatal: execvp /home/smsaction/automation/mailtosms.php: No such file or directory )
May 1 23:47:05 ns1 postfix/smtpd[21195]: disconnect from ulysse.talessa.com[85.234.192.2]
Idée?
Niveau code, on s'en fou un peu mais voilà pour le moment:
#!/usr/bin/php5
<?php
$stdin = fopen('php://stdin', 'r');
mail("mickael@xxxxxx.be", "Reception SMS", "retour -->".$stdin);
?>
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 00:08:28,
Par philfrEssaie de mettre ça dans ton script:
#!/bin/bash
cat >>/tmp/out
exit 0
et n'oublie pas de le rendre exécutable (chmod +x )
Puis dis-nous quoi
#!/bin/bash
cat >>/tmp/out
exit 0
et n'oublie pas de le rendre exécutable (chmod +x )
Puis dis-nous quoi
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 10:45:23,
Par cauetSalut.
J'ai déjà mis en chmod+x
Mais le code que tu me donne là , c'est pas du php
Tu veux que je teste d'abord avec un bash?
J'ai déjà mis en chmod+x
Mais le code que tu me donne là , c'est pas du php
Tu veux que je teste d'abord avec un bash?
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 11:05:58,
Par ovhIl est bizarre ton code
Moi pour avoir le contenu du mail je ferais :
Parce que toi ta variable $stdin ne contient que le handler du fichier et pas son contenu
Ensuite pour envoyer un mail j'utilise phpmailer
Par contre, si le seul but de ton script est de forwarder l'e-mail à une autre adresse, il doit y avoir plus simple, sûrement qu'une règle procmail sur le compte récepteur pourrait faire l'affaire
Dernière édition: 02/05/2007 @ 11:07:14
Moi pour avoir le contenu du mail je ferais :
Parce que toi ta variable $stdin ne contient que le handler du fichier et pas son contenu
Ensuite pour envoyer un mail j'utilise phpmailer
Par contre, si le seul but de ton script est de forwarder l'e-mail à une autre adresse, il doit y avoir plus simple, sûrement qu'une règle procmail sur le compte récepteur pourrait faire l'affaire
Dernière édition: 02/05/2007 @ 11:07:14
Je n'ai rien à voir avec www.ovh.com
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 11:08:14,
Par cauetAlalala ové, t'a rien compris comme d'habitude
Le but étant de vérifier par retour mail que le systeme fonctionne, pas de forwarder par email..
Le but étant de vérifier par retour mail que le systeme fonctionne, pas de forwarder par email..
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 11:08:35,
Par cauetCela dit, pour le handle je suis totalement d'accord
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 11:14:09,
Par cauetCe serait pas plutôt :
<?php
while (!feof($handle)) {
$ovh=fgets($handle);
}
?>
Dernière édition: 02/05/2007 @ 11:35:00
<?php
while (!feof($handle)) {
$ovh=fgets($handle);
}
?>
Dernière édition: 02/05/2007 @ 11:35:00
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 12:01:12,
Par Keeperen PHP tu peus tout lire d'un coup....
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 12:35:10,
Par cauetNote: Le paramètre length est devenu optionnel depuis PHP 4.2.0. Depuis PHP 4.3.0, le fait d'ommettre ce paramètre fait que la fonction lira 1024 octets de la ligne. Si la majorité des lignes du fichier dépassent les 8 ko, il est plus efficace pour votre script de spécifier ce paramètre.
Façon là n'est pas le problème, mon script ne s'execute pas
Façon là n'est pas le problème, mon script ne s'execute pas
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 12:38:47,
Par ovhDans /etc/aliases, essaie de mettre des guillemets, comme ça :
sms: "|/home/toto/tutu/pouet/monjoliscript.php"
Je n'ai rien à voir avec www.ovh.com
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 12:58:15,
Par cauetMerci mon ovh chéri
Ca fonctionne!
sms: "|/usr/bin/php5 /home/smsaction/automation/mailtosms.php"
Ca fonctionne!
sms: "|/usr/bin/php5 /home/smsaction/automation/mailtosms.php"
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 12:59:09,
Par ovhJe n'ai rien à voir avec www.ovh.com
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 13:07:14,
Par Keeperje veux dire tout lire le fichier d'un coup
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 13:56:09,
Par cauetMerci à philou aussi
[Postfix] Lancer un script à la réception d'un email
Publié le 02/05/2007 @ 19:14:51,
Par philfrAh quand même
[Postfix] Lancer un script à la réception d'un email
Publié le 19/08/2008 @ 11:24:45,
Par fcccJe relance le sujet car je cherche à faire la même chose (lancer un script a la reception d'un email) avec Qmail, mais je n'ai rien trouvé sur le net. Quelqu'un pourrait-il m'aider ?
Merci.
Merci.
[Postfix] Lancer un script à la réception d'un email
Publié le 19/08/2008 @ 12:51:15,
Par philfrPareil, mais il faut lancer une commande newaliases après avoir modifié ton /etc/aliases pour le convertir en db utilisée par qmail.
[Postfix] Lancer un script à la réception d'un email
Publié le 19/08/2008 @ 15:42:54,
Par fcccPar contre je n'ai pas de /etc/aliases . Et je ne trouve pas la commande newaliases (je n'ai pas Postfix, mais uniquement Qmail).
Et cerise sur le gâteau, je n'ai pas un grand niveau en linux !
Et cerise sur le gâteau, je n'ai pas un grand niveau en linux !