メールでお問い合わせをいただきましたが、こちらに回答します。
ずいぶん昔に設計したもので、いまプログラムを見返してみると、いくつか修正した
方がいい点がありました。呑兵衛さんの書いたとおり、現行一般のsendmailでは-tを付けて
内容を評価させるようになっています。まだ少数ですが、最新のsendmailまたはプロバイダの方針により、
特別な設定方法にしている場合もあります。その辺はプロバイダの設定に従って修正してください。
Bcc:ですが、sendmailがそれを評価して実行してくれるかどうかはわかりません。
あまりその辺に詳しくありません。その方法で成功したのであればそれでいいと思います。
私が過去に試してみた経験では、ヘッダにBcc:を入れるだけでは出来ませんでした。
そのため、Bcc:はメールクライアントがそのような動作になるようにデータを加工して
送信しているものとばかり思っていました。
さて、ご質問がよく把握できていませんが、「ユーザに送信された内容を、ユーザには
わからないように(ヘッダに記録されないように)別のアドレスに写しとして送信したい」
ということでしょうか?
if (!open(OUT,"| $sendmail -t")) { &error('システムエラー','メール送信処理にエラーが発生しています.','復旧するまでお待ちください.'); }
...
print OUT "To: $FORM{'EMAIL'}\n";
print OUT "From: Admin <$admin>\n";
...
close(OUT);
の直後に、送りたいアドレス宛に同じ内容のメールを送信するようにするのが
簡単かと思います。2件程度の連続送信なら、その間に sleep(1); を入れなくても
大丈夫だと思います。
if (!open(OUT,"| $sendmail -t")) { &error('システムエラー','メール送信処理にエラーが発生しています.','復旧するまでお待ちください.'); }
...
print OUT "To: メールアドレス\n"; # 直接書く場合は @ は \@ にしてください
print OUT "From: Admin <$admin>\n";
...
close(OUT);
暗号処理にバグもあるので、修正したものをUPしたいと思います。v1.12