Perl - E-posta Gönderme

Sendmail Yardımcı Programını Kullanma

Düz Mesaj Gönderme

Linux / Unix makinesinde çalışıyorsanız, basitçe kullanabilirsiniz sendmailE-posta göndermek için Perl programınızın içindeki yardımcı program. İşte belirli bir e-posta kimliğine e-posta gönderebilen örnek bir komut dosyası. Sendmail yardımcı programı için verilen yolun doğru olduğundan emin olun. Bu, Linux / Unix makineniz için farklı olabilir.

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

Aslında, yukarıdaki komut dosyası, e-postayı hazırlayacak ve Linux / Unix makinenizde yerel olarak çalışan sunucuya gönderecek bir istemci e-posta betiğidir. Bu komut dosyası, gerçek hedefe e-posta göndermekten sorumlu olmayacaktır. Bu nedenle, verilen e-posta kimliğine e-posta göndermek için e-posta sunucusunun düzgün şekilde yapılandırıldığından ve makinenizde çalıştığından emin olmanız gerekir.

HTML Mesajı Gönderme

Sendmail kullanarak HTML formatlı e-posta göndermek istiyorsanız, tek yapmanız gereken Content-type: text/html\n e-postanın başlık kısmında aşağıdaki gibi -

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

MIME :: Lite Modülünü Kullanma

Windows makinesinde çalışıyorsanız, sendmail yardımcı programına erişiminiz olmayacaktır. Ancak, MIME: Lite perl modülünü kullanarak kendi e-posta istemcinizi yazmak için bir alternatifiniz var. Bu modülü MIME-Lite-3.01.tar.gz adresinden indirebilir ve Windows veya Linux / Unix makinenize kurabilirsiniz. Yüklemek için basit adımları izleyin -

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

İşte bu ve makinenizde MIME :: Lite modülü kurulu olacak. Artık e-postanızı aşağıda açıklanan basit komut dosyalarıyla göndermeye hazırsınız.

Düz Mesaj Gönderme

Şimdi, verilen e-posta kimliğine e-posta göndermeyle ilgilenecek bir komut dosyası var -

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

HTML Mesajı Gönderme

Sendmail kullanarak HTML formatlı e-posta göndermek istiyorsanız, tek yapmanız gereken Content-type: text/html\ne-postanın başlık kısmında. Aşağıda, HTML formatlı e-posta göndermeyle ilgilenecek komut dosyası verilmiştir -

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

Bir Ek Gönderme

Bir ek göndermek istiyorsanız, aşağıdaki komut dosyası amaca hizmet eder -

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

Attach () yöntemini kullanarak e-postanıza istediğiniz kadar dosya ekleyebilirsiniz.

SMTP Sunucusunu Kullanma

Makineniz bir e-posta sunucusu çalıştırmıyorsa, uzak konumda bulunan başka herhangi bir e-posta sunucusunu kullanabilirsiniz. Ancak başka herhangi bir e-posta sunucusunu kullanmak için bir id, şifresi, URL'si vb. Olması gerekir. Gerekli tüm bilgilere sahip olduğunuzda, bu bilgilerisend() yöntem aşağıdaki gibidir -

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

Yukarıdaki bilgileri kullanmak için e-posta sunucusu yöneticinizle iletişime geçebilirsiniz ve bir kullanıcı kimliği ve şifresi zaten mevcut değilse, yöneticiniz dakikalar içinde oluşturabilir.