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.