Envoi d'e-mails en Perl

Si votre programme s'exécute sur un système Linux/Unix, vous pouvez utilisersendmailcomme outil pour envoyer des e-mails.

Voici un exemple simple de script pour envoyer des e-mails :

Exemple

#!/usr/bin/perl # E-mail du destinataire, ici je l'ai défini sur ma boîte QQ, vous devez le remplacer par votre propre boîte aux lettres $to = '[email protected]'; # E-mail de l'expéditeur $from = '[email protected]'; # Objet $subject = 'Exemple de tutoriel Perl d'envoi d'e-mail test'; $message = 'Ceci est un e-mail envoyé à l'aide de Perl.'; open(MAIL, "|/usr/sbin/sendmail -t"); # En-tête de l'e-mail print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n\n"; # Informations sur l'e-mail print MAIL $message; close(MAIL); print "E-mail envoyé avec succès\n";

En exécutant le programme ci-dessus, le résultat de sortie est :

Email sent successfully

Dans des circonstances normales, l'e-mail ci-dessus sera intercepté par la boîte aux lettres QQ. Nous pouvons l'ajouter à la liste blanche. Pour savoir comment procéder, vous pouvez cliquer :https://kf.qq.com/faq/120322fu63YV130805rYRFzu.html

Après l'avoir ajouté à la liste blanche, vous pouvez recevoir des e-mails normalement.

Envoi d'un e-mail au format HTML

Nous pouvons ajouterContent-type: text/html\npour envoyer un e-mail au format HTML, comme suit :

Exemple

#!/usr/bin/perl # E-mail du destinataire, ici je l'ai défini sur ma boîte QQ, vous devez le remplacer par votre propre boîte aux lettres $to = '[email protected]'; # E-mail de l'expéditeur $from = '[email protected]'; # Objet $subject = 'Exemple de tutoriel Perl d'envoi d'e-mail test'; $message = '<h1>Ceci est un e-mail envoyé à l'aide de Perl<h1><p>Bonjour, je viens de Example Tutorial, l'adresse est : http://www.example.com.</p>'; open(MAIL, "|/usr/sbin/sendmail -t"); # En-tête de l'e-mail print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n"; print MAIL "Content-type: text/html\n"; # Informations sur l'e-mail print MAIL $message; close(MAIL); print "E-mail envoyé avec succès\n";

Après une exécution réussie, affichez le contenu de l'e-mail comme suit :


Utilisation du module MIME::Lite

Si vous utilisez un système Windows et que vous n'avez pas l'outil sendmail, vous pouvez utiliser le module MIME::Lite de Perl comme client de messagerie pour envoyer des e-mails.

L'adresse de téléchargement du module MIME::Lite est :MIME-Lite-3.030.tar.gz。

Ici, nous utilisons directement cpan pour installer (nécessite les privilèges root), pas besoin de télécharger :

$ cpan -i MIME::Lite
……
  /usr/bin/make install  -- OK

Après une installation réussie, démontrons un exemple :

Exemple

#!/usr/bin/perl use MIME::Lite; # E-mail du destinataire, ici je l'ai défini sur ma boîte QQ, vous devez le remplacer par votre propre boîte aux lettres $to = '[email protected]'; # Destinataires en copie, séparez-en plusieurs par des virgules # $cc = '[email protected], [email protected]'; # E-mail de l'expéditeur $from = '[email protected]'; # Objet $subject = 'Example Tutorial - Test d'envoi d'e-mail en Perl'; $message = 'Ceci est un e-mail envoyé avec Perl, en utilisant le module MIME::Lite.'; $msg = MIME::Lite->new( From => $from, To => $to, Cc => $cc, Subject => $subject, Data => $message ); $msg->send; print "E-mail envoyé avec succès\n";

Après une exécution réussie, affichez le contenu de l'e-mail comme suit :

Envoi d'un e-mail au format HTML

Nous pouvons ajouterContent-type: text/html\npour envoyer un e-mail au format HTML, comme suit :

Exemple

#!/usr/bin/perl use MIME::Lite; # E-mail du destinataire, ici je l'ai défini sur ma boîte QQ, vous devez le remplacer par votre propre boîte aux lettres $to = '[email protected]'; # Destinataires en copie, séparez-en plusieurs par des virgules # $cc = '[email protected], [email protected]'; # E-mail de l'expéditeur $from = '[email protected]'; # Objet $subject = 'Example Tutorial - Test d'envoi d'e-mail en Perl'; $message = '<h1>Ceci est un e-mail envoyé avec Perl<h1><p>Le module MIME::Lite est utilisé.</p><p>Depuis Example Tutorial, l'adresse est : http://www.example.com.</p>'; $msg = MIME::Lite->new( From => $from, To => $to, Cc => $cc, Subject => $subject, Data => $message ); # Ajouter les informations d'en-tête $msg->attr("content-type" => "text/html"); $msg->send; print "E-mail envoyé avec succès\n";

Après une exécution réussie, affichez le contenu de l'e-mail comme suit :

Envoi d'un e-mail avec pièces jointes

Un exemple d'envoi d'e-mail avec pièces jointes est le suivant :

Exemple

#!/usr/bin/perl use MIME::Lite; # E-mail du destinataire, ici je l'ai défini sur ma boîte QQ, vous devez le remplacer par votre propre boîte aux lettres $to = '[email protected]'; # Destinataires en copie, séparez-en plusieurs par des virgules # $cc = '[email protected], [email protected]'; # E-mail de l'expéditeur $from = '[email protected]'; # Objet $subject = 'Example Tutorial - Test d'envoi d'e-mail en Perl'; $message = 'Ceci est un e-mail envoyé à l'aide de Perl, en utilisant le module MIME::Lite, et comprend une pièce jointe.'; $msg = MIME::Lite->new( From => $from, To => $to, Cc => $cc, Subject => $subject, Type => 'multipart/mixed' # Marqueur de pièce jointe ); $msg->attach ( Type => 'TEXT', Data => $message );# Spécifier les informations sur la pièce jointe $msg->attach(Type => 'TEXT', Path => './example.txt', # Dans le répertoire courant Filename => 'example.txt', Disposition => 'attachment' ); $msg->send; print "E-mail envoyé avec succès\n";

Après une exécution réussie, affichez le contenu de l'e-mail comme suit :

Vous pouvez ajouter plusieurs pièces jointes en utilisant plusieurs $msg->attach.

Autres extensions