Cet article vous présente le package Perl MIME::LITE. Ce package vous donnera la possibilité d'envoyé des mails très simplement. (gestion des pièces jointes, format HTML + images...)
Programmation > Perl
Recherche :   
Actualité Système Salon Concours Outils Programmation Devparadise Programmation HTML .Net JavaScript VBScript ASP PHP Visual Basic Perl Java Active X SQL XML WAP Delphi Graphisme Flash Web Design Promotion Référencement Publicité Valeur de votre site Outils Systèmes Windows Unix Linux Benchmark Hardware Réseaux locaux Droit Sécurité
Créer et envoyer un mail en Perl. (HTML, pièces jointes...)
  Auteur : Eric PETIT

Cet article vous présente le package Perl MIME::LITE. Ce package vous donnera la possibilité d'envoyé des mails très simplement. (gestion des pièces jointes, format HTML + images...)

Publicité 
Avant propos : Ce package fonctionne sur Unix, mais également sur Windows NT.

Tout d'abord, installez les packages MIME::LITE et MIME::LITE::HTML.

1) Envoyer un mail au format texte :

#######################################################
use MIME::Lite;

my $Message = new MIME::Lite
   From =>'expediteur@site.com',
   To =>'destinataire@site.com',
   Cc =>'copie@site.com, copie2@site.com',
   Bcc =>'copiecachee@site.com',
   Subject =>'Sujet de votre message.',
   Type =>'TEXT',
   Data =>"Pour finir, votre message au format texte";
$Message -> send;
#######################################################


2) Envoyer un mail au format HTML :

#######################################################
use MIME::Lite;

my $Message = new MIME::Lite
   From =>'expediteur@site.com',
   To =>'destinataire@site.com',
   Cc =>'copie@site.com, copie2@site.com',
   Bcc =>'copiecachee@site.com',
   Subject =>'Sujet de votre message HTML.',
   Type =>'TEXT',
   Data =>"<B>Contenu de votre message <U>HTML</U></B><BR>\n<I><U>Expediteur</U></I>";
# C'est ici que l'on change le content type, pour permettre au mail d'être interprété comme de l'HTML.
$Message->attr("content-type" => "text/html; charset=iso-8859-1");
$Message->send;
#######################################################


3) Envoyer un mail avec pièces jointes :

#######################################################
use MIME::Lite;

my $Message = new MIME::Lite
   From =>'expediteur@site.com',
   To =>'destinataire@site.com',
   Cc =>'copie@site.com, copie2@site.com',
   Bcc =>'copiecachee@site.com',
   Subject =>'Sujet de votre message avec pièces jointes.',
# Le message n'est plus de type text, mais multipart/mixed
   Type =>'multipart/mixed';
# Ajoutez le message (texte ou html)
attach $Message
   Type =>'TEXT',
   Data =>"Contenu de votre message au format texte";
# Ajoutez une image gif
# Path étant les nom et chemin d'origine et Filename le nom de destination du fichier
attach $Message
   Type =>'image/gif',
   Path =>'125it6ra89.gif',
   Filename =>'Logo.gif';
# Ajoutez un document PDF
attach $Message
   Type =>'application/pdf',
   Path =>'licence.pdf',
   Filename =>'licence.pdf';
# de même pour l'ensemble des fichiers...
$msg->send;
#######################################################

4) Envoyer un mail au format HTML avec images :

la méthode est un petit peu plus compliquée, Il faut créer chaque partie indépendemment et les regrouper dans un même message de type "multipart/related".
#######################################################
use MIME::Lite;

# création du mail
my $Message = new MIME::Lite
   From =>'expediteur@site.com',
   To =>'destinataire@site.com',
   Cc =>'copie@site.com, copie2@site.com',
   Bcc =>'copiecachee@site.com',
   Subject =>'Sujet de votre message avec images.',
   Type => 'multipart/related';
# Créez le message en y insérant un lien vers une référence à l'image (identifiant)
   my $TXTMessage = new MIME::Lite
      Type  =>'TEXT',
      Data  =>'Contenu du message plus lien sur l'image<BR>\nVoici notre LOGO:<BR><img src="cid:957863"><P>';
   # Modification du type (HTML)
   $TXTMessage->attr("content-type" => "text/html; charset=iso-8859-1");
# Attachez le message au mail
$Message->attach $TXTMessage;
# Créez l'image
   my $IMGMessage->attach
      Type =>'image/gif',
      Path =>'125it6ra89.gif',
      Filename =>'Logo.gif';
   # Modification du type (Identifiant 957863)
   $IMGMessage->attr('Content-ID' =>957863);
# Attachez l'image au mail
$Message->attach $IMGMessage;
# Envoyez le mail.
$Message->send;
#######################################################

Attention à l'identifiant, il faut vérifier que les identifiants utilisés soient uniques.
Si vous ajouter deux images diffèrentes, le repère CID doit être différent. Par contre, si vous utilisez deux fois la même image, attachée la une seule fois et utilisez le même CID.

5) Envoyer un mail au format HTML provenant d'une URL (avec récupération des images) :

Grâce à cette méthode, vous n'avez plus à vous charger de l'identifiant, ni du contenu... Indiquez simplement l'URL servant de source à votre mail.
Le package chargera le contenu de la page, ajoutera les images en s'occupant de la gestion des CID, ajoutera les Javascripts et les feuilles de style et assurera la conversion des liens relatifs en liens absolus.

#######################################################
use MIME::Lite;
use MIME::Lite::HTML;

# Utiliser maintenant la librairie MIME::Lite::HTML
my $EntMessage = new MIME::Lite::HTML
   # Rien ne change dans l'entête
   From =>'expediteur@site.com',
   To =>'destinataire@site.com',
   Cc =>'copie@site.com, copie2@site.com',
   Bcc =>'copiecachee@site.com',
   Subject =>'Sujet de votre message HTML.';

# Récupérez de la page html
$Message = $EntMessage->parse('http://www.devparadise.com');
# Envoyez le mail
$Message->send;
#######################################################

6) Note pour les utilisateurs de Perl sous Windows NT :

Remplacer la fonction send
   ex: $Message->send;
Par send_by_smtp('smtp.site.com')
   ex: $Message->send_by_smtp('smtp.site.com');
Où smtp.site.com est l'adresse de votre serveur de messagerie sortant.
Cette fonction utilise le package: "Net::SMTP"

A lire aussi sur Devparadise.com :
  • Optimiser gratuitement ses serveurs WEB (IIS et Apache)
  • avantage.devparadise.com : solution d'hébergement professionnel économique à ...
  • ASP et la création d'images à la volée
  • Sortie de DOLIST E-mail List Server 4
  • Utilisation de l'utilitaire HTMLDOC
  • A télécharger aussi sur Devparadise.com :
  • XAMPP 1.5.1 pour windows
  • acmemail 2.2.4
  • filtre ISAPI FastCGI pour IIS
  • WebExpert 5
  • Mail Magic Monitor

  • © 1997-2005 tous droits réservés Devparadise.com
    Les logos, et marques déposées sont la propriété de leurs détenteurs respectifs.
    Devparadise.com s'est engagé à respecter la confidentialité des données personnelles régies par la loi 78-17 du 6 janvier 1978.
    Déclaration C.N.I.L. n° 621623
    mail,html,mime,perl,send