Perl でSMTPサーバを指定してメールを送信する

ALL
スポンサーリンク

Perl でSMTPサーバを指定してメールを送信するサンプルです。
題名、本文とも、日本語対応です。
赤字の箇所を変更して使用して下さい。

use Encode;
use Net::SMTP;
use warnings;
use strict;
use utf8;
sendmail( '差出人' , '宛先' , '題名' , "本文1行目\n本文2行目..." );
sub sendmail {
    my $from = $_[0];
    my $mailto  = $_[1];
    my $subject = Encode::encode( 'MIME-Header-ISO_2022_JP' , $_[2] );
    my $header  = "From: $from\n" .
        "To: $mailto\n" .
        "Subject: $subject\n" .
        "Mime-Version: 1.0\n" .
        "Content-Type: text/plain; charset = ISO-2022-JP\n" .
        "Content-Trensfer-Encoding: 7bit\n";
    my $message = Encode::encode( 'iso-2022-jp' , $_[3] );
    my $smtp = Net::SMTP->new( 'SMTPサーバ' ,Port=> "587");
    if ( !$smtp ) {
        print encode('iso-2022-jp',  "メールサーバーにアクセスできません\n");
        exit;
    }
    $smtp->mail($from);
    $smtp->to($mailto);
    $smtp->data();
    $smtp->datasend($header);
    $smtp->datasend($message);
    $smtp->dataend();
    $smtp->quit;
}

コメント