Perl: отправка электронной почты
Если ваша программа работает в системе Linux/Unix, вы можете использоватьsendmailкак инструмент для отправки электронной почты.
Ниже приведён простой пример скрипта для отправки электронной почты:
Пример
#!/usr/bin/perl
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Пример руководства: тест отправки электронной почты на Perl';
$message = 'Это письмо, отправленное с помощью Perl.';
open(MAIL, "|/usr/sbin/sendmail -t");
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL $message;
close(MAIL);
print "Письмо успешно отправлено\n";
При выполнении вышеуказанной программы выводится следующий результат:
Email sent successfully
При обычных обстоятельствах вышеуказанное письмо будет перехвачено почтовым ящиком QQ. Мы можем добавить его в белый список. Чтобы узнать, как это сделать, нажмите:https://kf.qq.com/faq/120322fu63YV130805rYRFzu.html
После добавления его в белый список вы сможете нормально получать письма.

Отправка письма в формате HTML
Мы можем добавитьContent-type: text/html\n, чтобы отправить письмо в формате HTML, следующим образом:
Пример
#!/usr/bin/perl
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Пример руководства: тест отправки электронной почты на Perl';
$message = '<h1>Это письмо, отправленное с помощью Perl<h1><p>Здравствуйте, я из Example Tutorial, адрес: http://www.example.com.</p>';
open(MAIL, "|/usr/sbin/sendmail -t");
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-type: text/html\n";
print MAIL $message;
close(MAIL);
print "Письмо успешно отправлено\n";
После успешного выполнения просмотрите содержимое письма следующим образом:

Использование модуля MIME::Lite
Если вы используете систему Windows и у вас нет инструмента sendmail, вы можете использовать модуль MIME::Lite из Perl в качестве почтового клиента для отправки писем.
Адрес для скачивания модуля MIME::Lite:MIME-Lite-3.030.tar.gz。
Здесь мы напрямую используем cpan для установки (требуются права root), скачивать не нужно:
$ cpan -i MIME::Lite
……
/usr/bin/make install -- OK
После успешной установки давайте продемонстрируем пример:
Пример
#!/usr/bin/perl
use MIME::Lite;
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Тест отправки электронной почты на Perl от Example Tutorial';
$message = 'Это письмо, отправленное с помощью Perl, с использованием модуля MIME::Lite.';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->send;
print "Письмо успешно отправлено\n";
После успешного выполнения просмотрите содержимое письма следующим образом:

Отправка письма в формате HTML
Мы можем добавитьContent-type: text/html\n, чтобы отправить письмо в формате HTML, следующим образом:
Пример
#!/usr/bin/perl
use MIME::Lite;
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Тест отправки электронной почты на Perl от Example Tutorial';
$message = '<h1>Это письмо, отправленное с помощью Perl<h1><p>Используется модуль MIME::Lite.</p><p>От Example Tutorial, адрес: http://www.example.com.</p>';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->attr("content-type" => "text/html");
$msg->send;
print "Письмо успешно отправлено\n";
После успешного выполнения просмотрите содержимое письма следующим образом:

Отправка электронного письма с вложениями
Пример отправки электронного письма с вложениями выглядит следующим образом:
Пример
#!/usr/bin/perl
use MIME::Lite;
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Тест отправки электронной почты на Perl от Example Tutorial';
$message = 'Это электронное письмо, отправленное с помощью Perl с использованием модуля MIME::Lite, содержит вложение.';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Type => 'multipart/mixed'
);
$msg->attach (
Type => 'TEXT',
Data => $message
);
$msg->attach(Type => 'TEXT',
Путь => './example.txt',
Имя файла => 'example.txt',
Размещение => 'вложение'
);
$msg->send;
print "Письмо успешно отправлено\n";
После успешного выполнения просмотрите содержимое письма следующим образом:

Вы можете добавить несколько вложений, используя несколько $msg->attach.
Другие расширения