アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。メールフォームを作ったのですが、
テスト送信すると文字化けになってしまいます。
それも、短い文章なら、日本語で表示されるのですが、文章がながくなると、一部分が文字化けしてしまいます。ヤフーの長い記事を貼り付けてみたのですが、やっぱり長いと変なところが文字化けしてしてしまいます。また、テストテストテストテスト・・・
とコピペすると、14行目あたりから急に

テストテストテストテストテストテストテストテストテ!

%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%9%H%F%・・・・・・・

となってしまいます。いったいどのように書けば文字化けを起こさないで送信できるのでしょうか。。

以下はメールのサブルーチンです。どこがおかしいのでしょうか?ご指導お願いいたします。

sub mail{

$mail_body .= "$mes\n";
$mail_body .= "$mes2\n";
$mail_body .= "$mes3\n";

&jcode'convert(*mail_body,'jis');

$subject2 = &mimeencode($subject);

open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
print MAIL "From: $from_mail\n";
print MAIL "To: $to_mail\n";
print MAIL "Subject: $subject2\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "$mail_body\n";
close (MAIL);
}

A 回答 (1件)

おそらくsendmailを使っているものと思われますが、


未改行の長い文を入力すると、途中で強制改行されます。
改行が2バイト文字の真ん中に入ってしまうとそれ以降が全て文字化けします。

著名な問題で、"sendmail 改行"で検索すると解決法が沢山出てきます。
その中でシンプルな方法の一つを参考URLに載せておきます。

本文をJISに変換する前に行ってください。

参考URL:http://www.deftrash.com/blog/archives/2005/11/se …
    • good
    • 0

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