« Quelques modules Perl » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
 
Ligne 81 : Ligne 81 :
     ReadMode('normal');
     ReadMode('normal');


Mais si le module n'est pas installé et que l'on n'est pas root c'est plus complexe. On peut préférer le module maison pour la simple lecture de touche [[PERL:HETKEY]].


Plus d'info sur perlfaq8 - Interactions avec le système [http://perl.enstimac.fr/DocFr/perlfaq8.html#comment%20lire%20simplement%20une%20touche%20sans%20attendre%20un%20appui%20sur%20entr%C3%A9e]
Plus d'info sur perlfaq8 - Interactions avec le système [http://perl.enstimac.fr/DocFr/perlfaq8.html#comment%20lire%20simplement%20une%20touche%20sans%20attendre%20un%20appui%20sur%20entr%C3%A9e]

Version actuelle datée du 28 février 2025 à 19:48

Envoyer des mails avec Net::SMTP

En perl on peut tout faire... ici envoyer un mail.

Le serveur SMTP qui vas être utilisé est a renseigné dans $SMTP_HOST.

J'ai essayé avec le smtp de free smtp.free.fr. Ca marche bien mais google classe le mail illico dans les spam!

 #!/usr/bin/perl -w

 use Net::SMTP;

 my $SMTP_HOST  = "server";

 sub send_mail
 {
         my ($from, $to_addr, $msg);

         $from       = shift;
         $to_addr    = shift;
         $msg    = shift;

         #
         # Open a SMTP session
         #
         $smtp = Net::SMTP->new( $SMTP_HOST,
                                 'Debug' => 0,
                                 );

         if(!defined($smtp) || !($smtp))
         {
                 print "SMTP ERROR: Unable to open smtp session.\n";

                 return 0;
         }

         #
         # Pass the 'from' email address, exit if error
         #
         if (! ($smtp->mail( $from ) ) )
         {
                 print "SMTP ERROR: Unable open new mail.\n";
                 return 0;
         }

         #
         # Pass the recipient address(es)
         #
         if (! ($smtp->recipient( ( ref($to_addr) ? @$to_addr : $to_addr ) ) ) )
         {
                 print "SMTP ERROR: Unable to create recipient.\n";
                 return 0;
         }

         #
         # Send the message
         #
         $smtp->data();
         $smtp->datasend("Subject: test\n");
         $smtp->datasend("To: $to_addr\n");
         $smtp->datasend("From: $from\n");
         $smtp->datasend("Reply-to: $replyaddr\n") if $replyaddr;
         $smtp->datasend("X-Mailer: Perl Sendmail \n");

         $smtp->datasend("\n");
         $smtp->datasend("$msg\n");
         $smtp->dataend();
         $smtp->quit();
 }

 send_mail(
    'test@toto.com',
    'test@toto.com',
    'This is a brief email.\n');

Lire une touche au clavier

Exemple d'utilisation :

   use Term::ReadKey;
   ReadMode('cbreak');
   $key = ReadKey(0);
   ReadMode('normal');


Plus d'info sur perlfaq8 - Interactions avec le système [1]