Perl でメール送信(MailTools)

MailTools(一番簡単)

・インストール

[root]# cpan Mail::Internet

・プログラム
#!/usr/bin/perl

#############
# MailTools
#############

use strict;
use warnings;
use Mail::Header;
use Mail::Internet;
use Encode qw( decode encode );

# ヘッダー
my $hd_obj = Mail::Header->new();
$hd_obj->add( From    => 'foo@example.com' );
$hd_obj->add( To      => 'bar@example.com' );
#$hd_obj->add( Cc      => ''                );
$hd_obj->add(
    Subject => encode( 'MIME-Header-ISO_2022_JP', decode( 'utf8', '件名' ) )
);

# 文字列として、ヘッダを返す
# my $hd_str = $hd_obj->as_string;
# say $hd_str;

# 本文
my $message = <<"EOD";
本文
本文
EOD
$message = encode( 'ISO-2022-JP', decode('utf8', $message) );

# Mail::Internet オブジェクト作成
my $mi_obj = Mail::Internet->new(
                                 Header => $hd_obj,
                                 Body   => [$message],
                                 Modify => 1,   # 一部メーラ向け、ヘッダ再構成
                                );

# 文字列として、メッセージ(ヘッダ + 本文)を返す
# my $mi_str = $mi_obj->as_string;
# say $mi_str;

# メール送信
$mi_obj->smtpsend();