※ ChatGPTを利用し、要約された質問です(原文:MIME::LiteをSMTPで送信すると「ファイル番号が違います。」というリターンが帰って来る。)
MIME::LiteをSMTPで送信すると「ファイル番号が違います。」
2006/07/10 11:35
このQ&Aのポイント
MIME::Liteを使用してメールを転送するプログラムを作成中ですが、sendメソッド実行後に「ファイル番号が違います。」というエラーメッセージが表示されます。
OSはsolaris 8、Perlのバージョンは5.005_03です。
メールの送信は正常に行われるのですが、エラーメッセージの意味がわかりません。何か問題があるのでしょうか?
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
質問の原文を閉じる
質問の原文を表示する
お礼
以下のように修正しました。 <before>******************************** # メール送信 $msg->send('smtp', $MAILSERVER); if (! "$!" eq "" ) { exit 68; } print "メールの送信が完了しました\n"; exit 0; <after>******************************** # メール送信 eval { $msg->send('smtp', $MAILSERVER); }; if ($@) { print "$@"; exit 69; } print "メールの送信が完了しました\n"; exit 0; シェルと同じように考えていました。どうもありがとうございました(☆^O^☆)!!