MIME::LiteをSMTPで送信すると「ファイル番号が違います。」というリターンが帰って来る。
MIME::Liteパッケージについての質問です。
現在MIME::Liteパッケージを使用してメールを転送する
プログラムを作成しております。
メールは正常に送信できるのですが、MIME::Liteのsendメソッド実行後の"$!"に「ファイル番号が違います。」というメッセージが格納されます。これは何を意味しているのでしょうか?よろしくお願いします。
<コード>
#!/usr/bin/perl
# パッケージ指定
use Net::SMTP;
use Net::POP3;
use MIME::Lite;
use MIME::Base64;
use Jcode;
# メールcfgを読み込み
require "$ARGV[0]";
# メールサーバを指定
$MAILSERVER = 'hoge';
# コンテナを作成
my $msg = MIME::Lite->new(
From => "$FROM",
To => "$TO",
cc => "$CC",
Bcc => "$BCC",
Subject => "$SUBJECT",
Type => 'multipart/mixed'
);
# メッセージを追加
$msg->attach(
Type => 'text/plain; charset="iso-2022-jp"',
Data => "$MESSAGE"
);
# 添付ファイルが指定されているかチェック
if (! $FILEPATH eq "" ) {
# 添付ファイルが存在するかチェック
if (! -e $FILEPATH ) {
print "添付ファイル名:$FILEPATH\n";
exit 67;
} else {
# FILENAMEをGET
$NUM = rindex($FILEPATH,'/');
$FILENAME = substr($FILEPATH, $NUM+1);
# 添付ファイルを追加
$msg->attach(
Type => 'application/octet-stream',
Disposition =>'attachment',
Encoding => 'Base64',
Filename => "$FILENAME",
Path => "$FILEPATH"
);
}
}
# メール送信
$msg->send('smtp', $MAILSERVER);
if (! "$!" eq "" ) {
exit 68;
}
print "メールの送信が完了しました\n";
exit 0;
<環境>
OS:solaris 8
Perl:version 5.005_03
お礼
ありがとうございます。たいへん参考になりました。