Perl でメール送信(MIME-Tools)

MIME-Tools

    MailTools と Net::SMTP は、テキストだけのメールを作成する。
   MIME-Tools は、テキストと添付ファイルを持つ、メールを作成できる。
   MIME エンコードされたメッセージを解析して添付ファイルを抽出したり、
   添付ファイルを追加または削除したり、変更したメッセージを再送できる。
・インストール

[root]# cpan MIME::Tools

・プログラム
    テキストとオーディオ添付ファイルを送信

#!/usr/bin/perl

###################################
# MIME-Tools(日本語文字化け回避)
###################################

use strict;
use warnings;
use MIME::Entity;
use Encode qw( decode encode );

# ヘッダ
my $me_obj = MIME::Entity->build(
                 Type    => 'multipart/mixed',   # まとめられた無関係な情報
                 From    => 'foo@example.com',
                 To      => 'bar@example.com',
                 Subject =>
                    encode( 'MIME-Header-ISO_2022_JP', decode('utf8', '件名') ),
             );

# 本文を追加
my $message = <<"EOD";
本文
本文
EOD

# Type => 'text/plain; charset=utf-8;', Encoding => '8bit', で文字化け回避
$me_obj->attach(
                Type     => 'text/plain; charset=utf-8;',
                Encoding => '8bit',
                Data     => $message,
               );

# オーディオファイルを追加
$me_obj->attach(
                Type        => 'audio/mpeg',  # mp3
                Encoding    => 'base64',
                Description => 'mp3 file',
                Path        => '/path/to/xxx.mp3',
               );

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