記事No | : 2760 |
投稿日 | : 2008/01/31(Thu) 18:31:47 |
タイトル | : postmailの文字化け、utf-8変更 |
ID情報 | : epoisses |
投稿者 | : epoisses |
URL | : http://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 |
URL | : http://www5e.biglobe.ne.jp/~pachira/ |
何故、postmailに拘りますか?
文字コードを変更してまで使うより、元々utf-8で作られたプログラムを使う方が賢明だと思いますが…
例えば、
http://www.web-liberty.net/download/mail/index.html
とか。