Учебники

Perl – отправка электронной почты

Если вы работаете на Linux / Unix-машине, вы можете просто использовать утилиту sendmail внутри вашей Perl-программы для отправки электронной почты. Вот пример сценария, который может отправить электронное письмо на указанный идентификатор электронной почты. Просто убедитесь, что указан правильный путь для утилиты sendmail. Это может отличаться для вашей машины Linux / Unix.

#!/usr/bin/perl
 
$to = 'abcd@gmail.com';
$from = 'webmaster@yourdomain.com';
$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";

На самом деле, приведенный выше скрипт является клиентским почтовым скриптом, который будет чертить электронную почту и отправлять ее на сервер, работающий локально на вашем компьютере с Linux / Unix. Этот скрипт не будет нести ответственность за отправку электронной почты в фактическое место назначения. Таким образом, вы должны убедиться, что почтовый сервер правильно настроен и работает на вашем компьютере, чтобы отправлять электронную почту на указанный электронный адрес.

Отправка сообщения HTML

Если вы хотите отправлять электронную почту в формате HTML с использованием sendmail, вам просто нужно добавить Content-type: text / html \ n в часть заголовка письма следующим образом:

#!/usr/bin/perl
 
$to = 'abcd@gmail.com';
$from = 'webmaster@yourdomain.com';
$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

Если вы работаете на машине с Windows, то у вас не будет доступа к утилите sendmail. Но у вас есть альтернатива написать свой собственный почтовый клиент, используя модуль Perl MIME: Lite. Вы можете скачать этот модуль с MIME-Lite-3.01.tar.gz и установить его на свой компьютер Windows или Linux / Unix. Чтобы установить его, следуйте простым шагам –

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

Вот и все, и у вас будет установлен модуль MIME :: Lite на вашем компьютере. Теперь вы готовы отправить свое письмо с помощью простых сценариев, описанных ниже.

Отправка простого сообщения

Теперь следующий скрипт, который позаботится об отправке электронной почты на указанный адрес электронной почты –

#!/usr/bin/perl
use MIME::Lite;
 
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$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

Если вы хотите отправлять электронную почту в формате HTML с помощью sendmail, вам просто нужно добавить Content-type: text / html \ n в заголовочную часть письма. Ниже приведен сценарий, который позаботится об отправке электронной почты в формате HTML.

#!/usr/bin/perl
use MIME::Lite;
 
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$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";

Отправка вложения

Если вы хотите отправить вложение, то следующий скрипт служит цели –

#!/usr/bin/perl
use MIME::Lite;
 
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$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 ().

Использование SMTP-сервера

Если на вашем компьютере не работает почтовый сервер, вы можете использовать любой другой почтовый сервер, доступный в удаленном месте. Но для использования любого другого почтового сервера вам понадобится идентификатор, пароль, URL и т. Д. Получив всю необходимую информацию, вы просто должны предоставить эту информацию в методе send () следующим образом:

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

Вы можете связаться с администратором своего почтового сервера, чтобы получить указанную выше информацию, и если идентификатор пользователя и пароль еще не доступны, ваш администратор может создать их за считанные минуты.