KENT-WEB サポートコーナー 過去ログ [ 0140 ]


記事No: 2760
投稿日: 2008/01/31(Thu) 18:31:47
タイトルpostmailの文字化け、utf-8変更
ID情報: epoisses
投稿者: epoisses
URLhttp://sugoi.co.jp/contact.html

postmail v4.2を、
SAKURAインターネットにて設置しました。

ウェブサイトの文字コードがUTF-8なので、
cgi本体もutf-8に変更しようとしております。

下記の変更後に送信テストをしたところ、
無事送信はされるのですが、
thx.htmlのみ正常表示され、
それ以外のhtmlおよび届くメールが以下のように文字化けします。

このメールは自動送信でお送りしています。
以下のとおりフォームメールより送信がありました。

────────────────────────────
▼送信内容
────────────────────────────

companyName =
yourName =
telNumber =
eMail =
comment =
submit = 送信


────────────────────────────
送信日時 : 2008/01/31(Thu) 17:28
ブラウザ : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
ホスト名 : softbank219213116019.bbtec.net
────────────────────────────

なお、utf-8で表示されるためのcgiへ行った変更は以下の通りです。

99行目の

require './jcode.pl';を
use Jcode;に変更。

432行目//テンプレ変数変換

&jcode'convert(*tbody, 'jis');を
&Jcode::convert($tbody, 'jis');に修正。

461行目//本文内容

&jcode'convert(*tmp, 'jis', 'sjis');を
&Jcode::convert($tmp, 'jis', 'utf8');に変更。

500行目//送信内容フォーマット化

$body .= "Content-type: text/plain; charset=iso-2022-jp\n";を
$body .= "Content-type: text/plain; charset=utf-8\n";とcharsetをutf-8に変更。

642行目、643行目//フォームデコード

&jcode'convert(*key, 'sjis');
&jcode'convert(*val, 'sjis');の行頭に#を挿入して

#&jcode'convert(*key, 'sjis');
#&jcode'convert(*val, 'sjis');に修正。

779行目//チェックモード

<meta http-equiv="content-type" content="text/html; charset=shift_jis">を
<meta http-equiv="content-type" content="text/html; charset=utf-8">に修正。

846行目//BASE64変換

$sub = "=?iso-2022-jp?B?" . &b64enc($sub) . "?=";を
$sub = "=?utf-8?B?" . &b64enc($sub) . "?=";に修正。

修正後、.cgiと.htmlを全てutf-8で保存しなおしてサーバーにアップロードしましたが、
html、届くメールがどうしても文字化けします。

お手数ですが、
なにとぞアドバイスをいただきますようお願いいたします。


記事No: 2763
投稿日: 2008/02/01(Fri) 11:17:57
タイトルRe: postmailの文字化け、utf-8変更
ID情報: pachira
投稿者: pachira
URLhttp://www5e.biglobe.ne.jp/~pachira/

何故、postmailに拘りますか?

文字コードを変更してまで使うより、元々utf-8で作られたプログラムを使う方が賢明だと思いますが…

例えば、
http://www.web-liberty.net/download/mail/index.html
とか。


[検索ページ]