いま、市販の本についていたDM用のCGIをカスタマイズしているのですが、文字化けと改行コードがうまくいきません。ちゃんと送れるメールアドレスもあるのですが、文字化けしてしまう人もいます。
ちなみにサーバーはLINUXです。なんとか本文の文字化けと改行は直りましたが、宛先と件名がどうしても化けてしまいます。お分りになる方がいましたら、ぜひお教え下さい。ちなみに、文字コードはeuc-jpで統一し、改行はLFでやっています。
sendmailに埋め込む部分をどう修正すべきかが分かりません。
参考までにスクリプトの一部を書きます。
# sendMail利用部 埋め込みコマンドの置き換え
sub broadCaster
{
my $i = 0;
my $temp = '';
my $letter = '';
for ($i = 0; $i <= $#lists; $i++){
$temp = "$subject###$body";
$temp =~ s/<CGI:mail>/$listDX[$i][0]/g;
$temp =~ s/<CGI:name1>/$listDX[$i][1]/g;
$temp =~ s/<CGI:name2>/$listDX[$i][2]/g;
$temp =~ s/<CGI:admin name>/$adminName/g;
$temp =~ s/<CGI:admin mail>/$adminMail/g;
$temp =~ s/<CGI:time>/$now/g;
($tempSubject, $tempBody) = split(/###/, $temp);
$tempBody =~ s/\r\n/\n/g;
$letter = "X-Mailer: U got Mail\n";
$letter .= "To: \"$listDX[$i][1] $listDX[$i][2] 様\" <$listDX[$i][0]>\n";
$letter .= "From: \"$adminName\" <$adminMail>\n";
$letter .= "Subject: $tempSubject\n\n";
$letter .= "$tempBody\n\n";
$letter = jcode::jis($letter);
No.1ベストアンサー
- 回答日時:
ヘッダーと本文はエンコード形式が違います。
本文はjcodeでエンコードしているようですが
ToやらSubjectを正しくMIMEencodeしてますか?
ヘッダーはmime_encodeしてみてください。
No.3
- 回答日時:
ぼけっとしてました、サンプルで使っているのはjcode.plですね多分。
Jcode.pmとは別物です。コマンドが入力できる環境(telnetやssh)があるなら$ perl -MJcode
してみてください。Can't locate Jcode.pmと出なければ利用できます。(Ctrl+Cでperlの実行を中止してください)
use Jcode;
をプログラムの先頭の方に書き加えてください。
入っていなければインストールするか(root権限やtelnetまたはsshのコマンド入力環境が必要です)、mimew.plを使うという方法もあります。
mimew.plを利用するにはプログラムと同じディレクトリに配置して
require 'mimew.pl';
$tempSubject = mimeencode($tempSubject);
のように書けばよいと思います。
Jcode.pm
http://search.cpan.org/~dankogai/Jcode-2.00/
mimew.pl
http://itbtech.itboost.co.jp/perl/mimew.pl
No.2
- 回答日時:
エンベロープ(ヘッダ)の部分は
=?文字コードの宣言?B?宣言された文字列をBase64にエンコードしたもの?
で、全体で75文字以上になる場合は改行を入れる。という形式の取り決めがあります。(参照URLのRFC2047を見てください)
例.)
=?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=
ということをふまえてなければいけませんが、Jcode.pmにはそのための関数が用意されています。jcode::jisを使っているのですでにuse Jcode;は宣言されていると思いますが一応確認してください。
$tempSubject = jcode->($tempSubject)->mime_encode;
を$letterより前に入れてください。
あて先の名前はおそらくは$listDX[$i][1..2]あたりに入っているかと思いますが、そこも必要に応じてmime_encodeしてあげてください。
ただし、mail@exsample.comのようなメールアドレスの部分はmime_encode*しないで*ください。
参考URL:http://www.asahi-net.or.jp/~bd9y-ktu/dtd_f/rfc_f …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CASLIIの数値データ入出力
-
quoted-printableのアルゴリズム
-
pythonエラー
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
EXCELからCSVにすると余計なカ...
-
英数字のみ全角から半角に変換
-
マクロを使ってフォルダー内に...
-
住宅にカナを入力する際に丁目...
-
WORDで改ページすると時々グレ...
-
IEからEdgeへの移行に伴うIMEの...
-
プログラミングでは、半角括弧...
-
VBA 置換文字がみつからない時
-
スペースで区切られた氏名から...
-
「一角」って何でしょうか
-
データにカンマが入ったCSVデー...
-
正規表現で、特定の文字列を含...
-
Excelについて質問です。 セル...
-
「何とかで始まり、何とかで終...
-
C言語のコンパイルエラーなん...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonエラー
-
IMAP4でsubjectが検索ヒットしない
-
メール(iso-2022-jp-2)のデコ...
-
Perlでのメール本文の解析について
-
「繝・せ繝・」となる文字化け
-
CGIでメールを送る際に文字...
-
1つのサイトで文字コードが混在...
-
CASLIIの数値データ入出力
-
quoted-printableのアルゴリズム
-
Perl 文字化け
-
文字コードの変換
-
mailtoで文字化けする場合
-
urlエンコード後の文字コードは...
-
Perl:ファイル名だけ文字化けする
-
文字コードを指定する際sjisな...
-
エンコードとデコードの違い?
-
正確に日本語にマッチさせるに...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
英数字のみ全角から半角に変換
おすすめ情報