Programmation » [Postfix] Lancer un script à la réception d'un email
       
    [Postfix] Lancer un script à la réception d'un email
    Published 01/05/2007 @ 20:34:48,
    By cauet
    Hello,

    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!
    :grin:
       
    [Postfix] Lancer un script à la réception d'un email
    Published 01/05/2007 @ 23:25:04,
    By philfr
    Dans /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 :oh: 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
    Published 01/05/2007 @ 23:53:40,
    By cauet
    Bon, 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);
    ?>
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 00:08:28,
    By philfr
    Essaie 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 :wink:
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 10:45:23,
    By cauet
    Salut.
    J'ai déjà mis en chmod+x
    Mais le code que tu me donne là, c'est pas du php :petrus:

    Tu veux que je teste d'abord avec un bash?
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 11:05:58,
    By ovh
    Il est bizarre ton code :oh:

    Moi pour avoir le contenu du mail je ferais :
    1. while ($buffer = fgets(STDIN)) { 
    2. ... 
    3. }

    Parce que toi ta variable $stdin ne contient que le handler du fichier et pas son contenu :figti:
    Ensuite pour envoyer un mail j'utilise phpmailer :dawa:

    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 :figti:

    Latest Edition: 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
    Published 02/05/2007 @ 11:08:14,
    By cauet
    Alalala ové, t'a rien compris comme d'habitude :oh:
    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
    Published 02/05/2007 @ 11:08:35,
    By cauet
    Cela dit, pour le handle je suis totalement d'accord :wink:
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 11:14:09,
    By cauet
    Ce serait pas plutôt :

    <?php
    while (!feof($handle)) {
    $ovh=fgets($handle);
    }
    ?>


    :gratgrat:

    Latest Edition: 02/05/2007 @ 11:35:00
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 12:01:12,
    By Keeper
    en PHP tu peus tout lire d'un coup....
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 12:35:10,
    By cauet
    Note: 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.

    :gratgrat:


    Façon là n'est pas le problème, mon script ne s'execute pas :sweat:
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 12:38:47,
    By ovh
    Dans /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
    Published 02/05/2007 @ 12:58:15,
    By cauet
    Merci mon ovh chéri :grin:
    Ca fonctionne!

    sms: "|/usr/bin/php5 /home/smsaction/automation/mailtosms.php"
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 12:59:09,
    By ovh
    :dawadanse:
    Je n'ai rien à voir avec www.ovh.com
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 13:07:14,
    By Keeper
    je veux dire tout lire le fichier d'un coup
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 13:56:09,
    By cauet
    Merci à philou aussi :grin:
       
    [Postfix] Lancer un script à la réception d'un email
    Published 02/05/2007 @ 19:14:51,
    By philfr
    Ah quand même :oh:

    :wink:
       
    [Postfix] Lancer un script à la réception d'un email
    Published 19/08/2008 @ 11:24:45,
    By fccc
    Je 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.
       
    [Postfix] Lancer un script à la réception d'un email
    Published 19/08/2008 @ 12:51:15,
    By philfr
    Pareil, 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
    Published 19/08/2008 @ 15:42:54,
    By fccc
    Par contre je n'ai pas de /etc/aliases :wam: . 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 ! :sweat:
    Informaticien.be - © 2002-2025 AkretioSPRL  - Generated via Kelare
    The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?