Perl - Mengirim Email

Menggunakan Utilitas sendmail

Mengirim Pesan Biasa

Jika Anda bekerja di mesin Linux / Unix maka Anda cukup menggunakan sendmailutilitas di dalam program Perl Anda untuk mengirim email. Berikut adalah contoh skrip yang dapat mengirim email ke ID email tertentu. Pastikan jalur yang diberikan untuk utilitas sendmail sudah benar. Ini mungkin berbeda untuk mesin Linux / Unix Anda.

#!/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";

Sebenarnya, skrip di atas adalah skrip email klien, yang akan membuat draf email dan dikirimkan ke server yang berjalan secara lokal di mesin Linux / Unix Anda. Skrip ini tidak akan bertanggung jawab untuk mengirim email ke tujuan sebenarnya. Jadi, Anda harus memastikan server email dikonfigurasi dengan benar dan berjalan di komputer Anda untuk mengirim email ke ID email yang diberikan.

Mengirim Pesan HTML

Jika Anda ingin mengirim email berformat HTML menggunakan sendmail, maka Anda hanya perlu menambahkan Content-type: text/html\n di bagian header email sebagai berikut -

#!/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";

Menggunakan MIME :: Lite Module

Jika Anda bekerja pada mesin windows, maka Anda tidak akan memiliki akses pada utilitas sendmail. Tetapi Anda memiliki alternatif untuk menulis klien email Anda sendiri menggunakan modul MIME: Lite perl. Anda dapat mengunduh modul ini dari MIME-Lite-3.01.tar.gz dan menginstalnya di komputer Windows atau Linux / Unix Anda. Untuk menginstalnya ikuti langkah-langkah sederhana -

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

Itu saja dan Anda akan menginstal modul MIME :: Lite di mesin Anda. Sekarang Anda siap mengirim email Anda dengan skrip sederhana yang dijelaskan di bawah ini.

Mengirim Pesan Biasa

Sekarang berikut adalah skrip yang akan menangani pengiriman email ke ID email yang diberikan -

#!/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";

Mengirim Pesan HTML

Jika Anda ingin mengirim email berformat HTML menggunakan sendmail, maka Anda hanya perlu menambahkan Content-type: text/html\ndi bagian tajuk email. Berikut ini adalah skrip, yang akan menangani pengiriman email berformat HTML -

#!/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";

Mengirim Lampiran

Jika Anda ingin mengirim lampiran, maka skrip berikut melayani tujuan -

#!/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";

Anda dapat melampirkan file sebanyak yang Anda suka di email Anda menggunakan metode attach ().

Menggunakan Server SMTP

Jika mesin Anda tidak menjalankan server email, maka Anda dapat menggunakan server email lain yang tersedia di lokasi jarak jauh. Tetapi untuk menggunakan server email lain, Anda perlu memiliki id, kata sandi, URL, dll. Setelah Anda memiliki semua informasi yang diperlukan, Anda hanya perlu memberikan informasi itu disend() metode sebagai berikut -

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

Anda dapat menghubungi administrator server email Anda untuk mendapatkan informasi yang digunakan di atas dan jika id pengguna dan kata sandi belum tersedia maka administrator Anda dapat membuatnya dalam beberapa menit.