Sendmailの文字化けについて
以前にも同じ質問をしたのですが、いまいち解決していないので、もう一度質問させて頂きます。
ホームページでsendmailをつかってフォームより記入してもらった内容を自分のところと確認メールとして記入した人のところに送るようにしていますが、確認メールが文字化けすることがあるようです。
しかし、全ての人に対して化けるというわけではなく、ほとんどの場合は大丈夫なようですが、一部の人に対してだけ化けるようです。
関係しそうな部分を大まかに書くと下記のようにしておりますが、間違っているでしょうか?
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer,
$ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }
@pairs = split(/&/,$buffer);
foreach $pair (@pairs){
($name, $value) = split(/=/, $pair);
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');
$xx =$value;
&trans;
$value = $xx;
}
sub trans{
$from='[@01-9A-Za-z._-]';
$to='[@01-9A-Za-z._-]';
&jcode'convert(*xx, 'euc');
&jcode'convert(*from, 'euc');
&jcode'convert(*to, 'euc');
&jcode'tr(*xx, $from, $to);
&jcode'convert(*xx, 'sjis');
}
&jcode'convert(*message,'jis');
if (!open(MAIL,"|$sendmail $mail_address")) {&error;}
&jis("Subject: $mailname"); print MAIL "$msg\n";
print MAIL "To: $mail_address\n";
print MAIL "From: $mailfrom\n";
print MAIL "\n";
print MAIL "$message";
close(MAIL);
sub jis { $msg = $_[0]; &jcode'convert(*msg, 'jis');}
補足
回答ありがとうございます。 Sendmailの部分はフリーのCGIからもってきたので、詳しくはよく分からないのですが、下記のソースの部分でしょうか? &jcode'convert(*message,'jis'); jcode.plはおそらく大勢の方が使っているものだと思います。 ;###################################################################### ;# ;# jcode.pl: Perl library for Japanese character code conversion ;# ;# Copyright (c) 1995,1996 Kazumasa Utashiro <utashiro@iij.ad.jp> ;# Internet Initiative Japan Inc. ;# 1-4 Sanban-cho, Chiyoda-ku, Tokyo 102, Japan ;# ;# Copyright (c) 1992,1993,1994 Kazumasa Utashiro ;# Software Research Associates, Inc. ;# Original by srekcah@sra.co.jp, Feb 1992 ;# ;# Redistribution for any purpose, without significant modification, ;# is granted as long as all copyright notices are retained. THIS ;# SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ;# IMPLIED WARRANTIES ARE DISCLAIMED. ;# ;; $rcsid = q$Id: jcode.pl,v 2.0 1996/10/02 16:02:38 utashiro Rel $; ;# ;##################################################################### すいません。これだけの説明では詳しいことは伝わらないと思いますが・・・