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とパスワードがまだ利用できない場合は、管理者が数分で作成できます。