プロが教えるわが家の防犯対策術!

よろしくおねがいします。

sendmailを使用しフォームを設置しているのですが
問合せフォームで改行なしで長文を送信された場合 受信した本文途中から文字化けを起こします。

解決方法をネットで探してみたのですが解決する方法が見当たらず
何か対策法があればご教授頂ければ幸いです。

SENDMAILである程度のバイト数を指定し整列させれば・・・的なPAGEをみたのですが
具体的なことが書いてなかったのですが・・・りかきできず。。

よろしくお願いいたします。

ソースの一部はこんな感じです。

sub CopySendmail
{

# MIMEエンコード
$MemberSubject = &mimeencode($MemberSubject);

# メールヘッダ
$MailHead = "To: $email\n";
$MailHead .= "From: $AdminEmail\n";
$MailHead .= "Subject: $MemberSubject\n";
$MailHead .= "MIME-Version: 1.0\n";
$MailHead .= "Content-Transfer-Encoding: 7bit\n";
$MailHead .= "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n\n";

jcode::convert(\$MemberBody, 'jis', 'sjis');

$MemberBody .= "\n".$MailBody1;
open (MAIL, "| /usr/sbin/sendmail -t -f $AdminEmail") || die ("$!");
print MAIL $MailHead;
print MAIL $MemberBody;
close(MAIL);
}

A 回答 (2件)

sendmail 以前に,メールそのものの仕様として,1行の長さに制限があるんですが.


その制限を解除することはできませんよ.
たしか,1000 bytes だかで強制改行が入り,当然多バイト文字のことなんか考えてませんから,2バイト文字の途中でそれがおこれば,以後文字化けとなるわけです.
したがって,sendmail に渡す前に,適切にぶった切らなくてはなりません.
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

そうですか・・
>>したがって,sendmail に渡す前に,適切にぶった切らなくてはなりません.

この方法をどうすればいいのか。。
先ほどHTMLでWRAP=”HARD”を設定してみましたが。。
これ以外ですと何か方法がありますでしょうか。

何か参考になるサイトなどアドバイスいただければ幸いです。
よろしくお願いします。

お礼日時:2007/09/04 16:45
    • good
    • 0
この回答へのお礼

c80s3xxxさま

ありがとうございます!。
アドバイスいただきありがとうございます。
JCODE.PMを使用する方法があるのですね!。

早速試してみたいとおもいます!。

お礼日時:2007/09/04 17:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!