perlでファイルを複数添付してメールの送信をしたいのですが、どのように書けばいいのか分かりません。
test.csvは送信されるのですが、test2.csvを添付するにはどうしたらよろしいでしょうか?
下記がperlのスクリプトになります。
#!/usr/bin/perl
use Socket;
print $ARGV[1];
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
my $yyyymmdd = sprintf("%04d%02d%02d", $year + 1900, $mon + 1, $mday);
$EOL = "\015\012";
$smtpht = "mailserver";
$to = 'test';
$fr = 'test';
open(IN,"$ARGV[0]/mail.txt");
@contents = <IN>;
close(IN);
open(IN,"$ARGV[0]/test/test.csv");
@contents2 = <IN>;
close(IN);
$sock_addr = 'S n a4 x8';
$iaddr = inet_aton($smtpht);
$a = inet_ntoa($iaddr);
print "iaddr=";
print $a;
print "\n";
$port = getservbyname('smtp','tcp');
$sock_addr = pack_sockaddr_in($port,$iaddr);
socket(SOCKET,PF_INET,SOCK_STREAM, 0) || die;
connect(SOCKET,$sock_addr) || die;
select(SOCKET); $|=1; select(STDOUT);
$buftmp = <SOCKET>;
print $buftmp;
$cmd = "helo bkscr-lx";
print SOCKET $cmd . $EOL;
$buftmp = <SOCKET>;
print $buftmp;
$cmd = "Mail From:<test>";
print SOCKET $cmd . $EOL;
$buftmp = <SOCKET>;
print $buftmp;
$cmd = "Rcpt To:<test>";
print SOCKET $cmd . $EOL;
$buftmp = <SOCKET>;
print $buftmp;
$cmd = "DATA";
print SOCKET $cmd . $EOL;
$buftmp = <SOCKET>;
print $buftmp;
$message = <<END_OF_MESSAGE;
MIME-Version: 1.0
To: $to
From: $fr
Subject: test
Content-Type: multipart/mixed; boundary="*1234"
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
--*1234
$date
$hosts
@contents
--*1234
Content-Type: text/plain; name=test.csv
@contents2
--*1234--
END_OF_MESSAGE
$cmd = $message . $EOL . "." . $EOL;
print SOCKET $cmd;
$buftmp = <SOCKET>;
print $buftmp;
$cmd = "quit";
print SOCKET $cmd . $EOL;
$buftmp = <SOCKET>;
print $buftmp;
よろしくおねがいいたします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。