sendmailでの複数の宛先への送信がうまくいきません。

[上に] [前に] [次に]
みえ 2000/01/24(月) 16:15:48
sendmailでメールを送信するCGIを作りましたが、
うまく動きません。
なぜだよくわからないので、どなたか助けていただけないでしょうか?
よろしくお願いいたします。

#!/usr/local/bin/perl

$sendmail = '/usr/lib/sendmail';
require 'jcode.pl';

#ここからメールの中身です。
$message = <<END_OF_MESSAGE;
Subject: TEST
Reply-to: test@test.co.jp
メールの中身
END_OF_MESSAGE

#上のメッセージの内容をJISに直します。
&jcode'convert(*message,'jis');

foreach @mailto('mail@test.co.jp','mail2@test.co.jp'5人分のメールアドレス){
open(MAIL,"|$sendmail $mailto[0-4]");
print MAIL $message;
close(MAIL);
}
#表示されるHTMLです。
print"Content-type\: text\/html\n\n";
print <<ABC;
<HTML>
<HEAD>
<TITLE>メール送信完了</TITLE>
</HEAD>
</HTML>
ABC

\n 2000/01/24(月) 17:41:35
詳しく検証してないですが・・・

まず、どういうエラーなりが出て動かないのかを書いた方がいいですよ
「これを実行したら××になります」の様に

ちょっと見ただけだけど。
1.メールヘッダーと本文を改行のみで分離していない
2.Subjectをエンコードしていない

sendmailで検索すると沢山ヒントが見つかるはず・・・

忠告男 2000/01/24(月) 18:07:00
foreach @mailto('mail@test.co.jp','mail2@test.co.jp'5人分のメールアドレス){
open(MAIL,"|$sendmail $mailto[0-4]");

foreach $mailto('mail@test.co.jp','mail2@test.co.jp'5人分のメールアドレス){
open(MAIL,"|$sendmail $mailto");
では?

ラウォッチ 2000/01/24(月) 18:49:08
foreachでまわさないで、$sendmail一回でいけますよ。
ただし、$mailtoはこんな感じの文字列。

$mailto = 'mail@test.co.jp,mail2@test.co.jp';

open(MAIL,"|$sendmail $mailto");
print MAIL $message;
close(MAIL);

みえ 2000/01/25(火) 12:17:23
[[解決]]
>foreach $mailto('mail@test.co.jp','mail2@test.co.jp'5人分>のメールアドレス){
>open(MAIL,"|$sendmail $mailto");

これでうまくいきました。ありがとうございました。
ただ、やってみたところIE5.0ではあんまり長すぎる
文章だと、受信メールでは文章の途中から表示されなくなって
しましました。
でもNN4.7だと長い文章でも大丈夫でした。

ラウォッチさんへ
アドバイスありがとうございました。
今回は一つ一つを中身はいっしょながら独立したメールで
送りたかったので忠告男さんの方法がよかったようです。
TOのところに全員のアドレスが表示されたメールを
送る際には、ぜひ参考にさせていただきます。

みなさんどうもありがとうございました。

[上に] [前に] [次に]