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.