Perl - E-Mail senden

Verwenden des sendmail-Dienstprogramms

Senden einer einfachen Nachricht

Wenn Sie auf einem Linux / Unix-Computer arbeiten, können Sie einfach verwenden sendmailDienstprogramm in Ihrem Perl-Programm zum Senden von E-Mails. Hier ist ein Beispielskript, mit dem eine E-Mail an eine bestimmte E-Mail-ID gesendet werden kann. Stellen Sie einfach sicher, dass der angegebene Pfad für das Dienstprogramm sendmail korrekt ist. Dies kann für Ihren Linux / Unix-Computer anders sein.

#!/usr/bin/perl
 
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

Tatsächlich ist das obige Skript ein Client-E-Mail-Skript, das E-Mails erstellt und an den Server sendet, der lokal auf Ihrem Linux / Unix-Computer ausgeführt wird. Dieses Skript ist nicht für das Senden von E-Mails an das tatsächliche Ziel verantwortlich. Sie müssen also sicherstellen, dass der E-Mail-Server ordnungsgemäß konfiguriert ist und auf Ihrem Computer ausgeführt wird, um E-Mails an die angegebene E-Mail-ID zu senden.

Senden einer HTML-Nachricht

Wenn Sie HTML-formatierte E-Mails mit sendmail senden möchten, müssen Sie nur hinzufügen Content-type: text/html\n im Header-Teil der E-Mail wie folgt -

#!/usr/bin/perl
 
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Content-type: text/html\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

Verwenden des MIME :: Lite-Moduls

Wenn Sie auf einem Windows-Computer arbeiten, haben Sie keinen Zugriff auf das Dienstprogramm sendmail. Sie haben jedoch die Möglichkeit, Ihren eigenen E-Mail-Client mit dem MIME: Lite-Perl-Modul zu schreiben. Sie können dieses Modul von MIME-Lite-3.01.tar.gz herunterladen und auf Ihrem Computer Windows oder Linux / Unix installieren. Um es zu installieren, folgen Sie den einfachen Schritten -

$tar xvfz MIME-Lite-3.01.tar.gz
$cd MIME-Lite-3.01
$perl Makefile.PL
$make
$make install

Das war's und Sie haben das MIME :: Lite-Modul auf Ihrem Computer installiert. Jetzt können Sie Ihre E-Mail mit einfachen Skripten senden, die unten erläutert werden.

Senden einer einfachen Nachricht

Im Folgenden finden Sie ein Skript, mit dem E-Mails an die angegebene E-Mail-ID gesendet werden.

#!/usr/bin/perl
use MIME::Lite;
 
$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
                 
$msg->send;
print "Email Sent Successfully\n";

Senden einer HTML-Nachricht

Wenn Sie HTML-formatierte E-Mails mit sendmail senden möchten, müssen Sie nur hinzufügen Content-type: text/html\nim Header-Teil der E-Mail. Im Folgenden finden Sie das Skript, mit dem HTML-formatierte E-Mails gesendet werden.

#!/usr/bin/perl
use MIME::Lite;
 
$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
                 
$msg->attr("content-type" => "text/html");         
$msg->send;
print "Email Sent Successfully\n";

Anhang senden

Wenn Sie einen Anhang senden möchten, dient das folgende Skript dem Zweck:

#!/usr/bin/perl
use MIME::Lite;
 
$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Type     => 'multipart/mixed'
                 );
                 
# Add your text message.
$msg->attach(Type         => 'text',
             Data         => $message
             );
            
# Specify your file as attachement.
$msg->attach(Type         => 'image/gif',
             Path         => '/tmp/logo.gif',
             Filename     => 'logo.gif',
             Disposition  => 'attachment'
            );       
$msg->send;
print "Email Sent Successfully\n";

Mit der Methode attach () können Sie beliebig viele Dateien in Ihre E-Mail einfügen.

Verwenden des SMTP-Servers

Wenn auf Ihrem Computer kein E-Mail-Server ausgeführt wird, können Sie jeden anderen E-Mail-Server verwenden, der am Remotestandort verfügbar ist. Um jedoch einen anderen E-Mail-Server verwenden zu können, benötigen Sie eine ID, ein Kennwort, eine URL usw. Sobald Sie alle erforderlichen Informationen haben, müssen Sie diese Informationen einfach in angebensend() Methode wie folgt -

$msg->send('smtp', "smtp.myisp.net", AuthUser=>"id", AuthPass=>"password" );

Sie können sich an Ihren E-Mail-Server-Administrator wenden, um die oben genannten Informationen zu erhalten. Wenn eine Benutzer-ID und ein Kennwort noch nicht verfügbar sind, kann Ihr Administrator diese in wenigen Minuten erstellen.