 |
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"
|