Perl-メールの送信

sendmailユーティリティの使用

プレーンメッセージの送信

Linux / Unixマシンで作業している場合は、単に使用できます sendmail電子メールを送信するためのPerlプログラム内のユーティリティ。これは、特定の電子メールIDに電子メールを送信できるサンプルスクリプトです。sendmailユーティリティの指定されたパスが正しいことを確認してください。これは、Linux / Unixマシンによって異なる場合があります。

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

実際、上記のスクリプトはクライアントの電子メールスクリプトであり、電子メールのドラフトを作成し、Linux / Unixマシンでローカルに実行されているサーバーに送信します。このスクリプトは、実際の宛先に電子メールを送信する責任を負いません。したがって、指定された電子メールIDに電子メールを送信するには、電子メールサーバーが適切に構成され、マシン上で実行されていることを確認する必要があります。

HTMLメッセージの送信

sendmailを使用してHTML形式の電子メールを送信する場合は、追加するだけです。 Content-type: text/html\n 次のように電子メールのヘッダー部分に-

#!/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モジュールの使用

Windowsマシンで作業している場合は、sendmailユーティリティにアクセスできません。ただし、MIME:Liteperlモジュールを使用して独自の電子メールクライアントを作成する方法もあります。このモジュールは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モジュールがマシンにインストールされます。これで、以下で説明する簡単なスクリプトを使用してメールを送信する準備が整いました。

プレーンメッセージの送信

次に、指定された電子メールIDに電子メールを送信するスクリプトを示します-

#!/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メッセージの送信

sendmailを使用してHTML形式の電子メールを送信する場合は、追加するだけです。 Content-type: text/html\nメールのヘッダー部分にあります。以下は、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";

添付ファイルの送信

添付ファイルを送信したい場合は、次のスクリプトが目的を果たします-

#!/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()メソッドを使用して、電子メールに必要な数のファイルを添付できます。

SMTPサーバーの使用

マシンが電子メールサーバーを実行していない場合は、リモートの場所で利用可能な他の電子メールサーバーを使用できます。ただし、他の電子メールサーバーを使用するには、ID、パスワード、URLなどが必要です。必要な情報がすべて揃ったら、その情報をで提供するだけです。send() 次のような方法-

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

電子メールサーバーの管理者に連絡して、上記の使用情報を入手できます。ユーザーIDとパスワードがまだ利用できない場合は、管理者が数分で作成できます。