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

cgiから下記のようなsendmailを送信すると固定項目(スカラー)は正しく表示されるのですが
外部からの変数のみ文字化けしてしまいます。
受け側はGmailです。
変数はUTF-8で登録されています。
cgiはshift_jisです。
宜しくお願い致します。

sub reminder {

#------------------#
# メール本文 #
#------------------#

$cont = "";
$cont .= "$name1$name2 様\n\n";
$cont .= "いつもご利用ありがとうございます。\n";
$cont .= "$TITLEです。\n\n";
$cont .= "お客様のユーザー登録情報をお届けいたします。\n";
$cont .= "お忘れにならないよう、このメールの保存をお願い致します。\n\n";
$cont .= "[お客様のご登録情報]\n";
$cont .= "-------------------------------------------\n";
$cont .= "ユーザーID: $id\n";
$cont .= "パスワード: $pass\n";
$cont .= "ご登録日: $date\n";
$cont .= "-------------------------------------------\n\n";
$cont .= "尚、このようなメールを受け取る覚えの無い場合は\n";
$cont .= "誠にお手数ですが、下記までご連絡下さい。\n";


local($sub) = "ユーザー情報照会【$TITLE】"; # 件名
&jcode'convert(*sub, "jis");

$TO_MAIL = $mail;

&act_send_mail;

}


##----------------------------------------
## メール送信実行
##----------------------------------------
sub act_send_mail {

$head = "";
$head .= "To: $TO_MAIL\n";
$head .= "From: $MASTER_MAIL\n";
$head .= "Return-Path: $MASTER_MAIL\n";
$head .= "Reply-To: $MASTER_MAIL\n";
$head .= "Errors-To: $MASTER_MAIL\n";
$head .= "Subject: $sub\n";
$head .= "MIME-Version: 1.0\n";
$head .= "Content-type: text/plain; charset=\"ISO-2022-JP\"\n";
$head .= "Content-Transfer-Encoding: 7bit\n\n";

$body = "";

if(!$No_header){
$body .= "$TO_NAME 様\n\n";
for($i=0; $i<@mess_top; $i++){ $body .= "$mess_top[$i]\n"; }
}

$body .= $cont;
for($i=0; $i<@mess_btm; $i++){ $body .= "$mess_btm[$i]\n"; }

&jcode'convert(*body, "jis");

open(MAIL, "| $SEND_MAIL $TO_MAIL");
print MAIL $head;
print MAIL $body;
close(MAIL);

}

以上

A 回答 (1件)

言語が何かわからんのだけど (ちょう古い Perl?)


まともにコード変換ができないようにわざと複数のエンコーディングを混在させている
のが問題なんじゃない?
    • good
    • 0
この回答へのお礼

早々に連絡を頂いたのに、遅くなり申し訳ございません。
実はフリーソフトのオークションをカスタマイズして使っていたのですが
サーバーを引っ越ししたら動かなくなってしまいました。
サーバーはどちらもunixで見る限りは変わっていないように見えるのですが
説明書通りに設定しても思うようになりません。
お手間を取らせて申し訳ございませんでした。

お礼日時:2021/12/06 13:19

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