[Perl]-Envoyer une variable par mail unix

Résolu
Bonjour,

je souhaiterais savoir s'il est possible d'invoquer le 'mail' unix en perl en passant une variable en corps de message et si oui, comment faire ?

mail -s "sujet" toto@titi.com $VARIABLE ???

Merci d'avance

--

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

9 réponses

  1. Modérateur
    Salut,

    tu peux utiliser la fonction system (je n'ai pas testé ;-)
    system("mail", "-s", "toto@titi.com", $VARIABLE);
    --

    lami20j
    0
    1. Modérateur
      ça ne marche pas, il attend le ^D de fin de saisie, me demande les Cc et me prend $VARIABLE comme la liste des destinataires !
      0
      1. Modérateur
        Salut,

        et pourquoi n'utilises-tu MIME::Lite ?!
        0
        1. Modérateur
          C'est pas un module présent en standard, je crois...

          Je vais faire autrement du coup...

          Un fichier temporaire que je redirige sur ma commande
          0
          1. Contributeur
            hello

            system("echo " $VARIABLE "| mail -s sujet toto@titi.com");
            0
            1. Modérateur
              Ca le fait pas, ma variable contient des \n...
              0
              1. Contributeur
                open(FH, "| mail -s sujet toto@titi.com");
                print FH "$VARIABLE" ;
                close(FH);
                0
                1. Modérateur
                  Cool, ça marche...:-)

                  Faut juste penser à déspécialiser le @

                  EDIT : très bonne astuce ceci-dit, en passant. Je ne savais pas qu'on pouvait feinter comme ça...
                  0
                  1. Modérateur
                    Salut,

                    il ne s'agit pas fenter ;-))

                    c'est tout simplement l'ouverture d'un handle de fichier vers une commande
                    0
                    1. Modérateur
                      ben voui, mais je ne savais pas qu'on pouvait le faire, c'est vachement balaise !
                      0
                    2. Modérateur
                      @bluxmaintenant tu le sais
                      sache que ça marche dans les 2 sens

                      1. lire la sortie d'un programme

                      open (LIRE, "programme |")

                      2. écrire dans le programme (ton cas)

                      open (ECRIRE, "| programme")

                      tu remarques bien la position de pipe | (au début et à la fin)
                      0