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

CGIフォームに書いてある @ が消える対策を教えてください。

perl、シフトJISのメールフォームCGIをダウンロードして利用しています。
このCGIの設定画面で登録したメールアドレス署名部分の
info@example.comの @ 部分の記号が消えちゃいます。
(タグとか使いません。テキストで登録すれば改行も自動反映します。)

送信画面からメールを送った場合は全く文字化けしません。
@にするのが良いのでしょうか? 多くの環境で文字化けさせたくないのですが。

以下の文字化けテストもしてみました。
------------------------------------
@@―ソ噂十申貼能表暴予禄@@
@@\―\ソ\噂\十\申\貼\能\表\暴\予\禄\@\@\
@@―\ソ\噂\十\申\貼\能\表\暴\予\禄\@@
メール info@example.com
メール info@\example.com
メール info@example.com
-------------------------------
結果は、以下のようになりました。
-------------------------------
@@<縁嵩舶沫蓮@
@@―ソ噂十申貼能表暴予禄@@
@@―ソ噂十申貼能表暴予禄@@
メール info.com
メール info@ xample.com
メール info@example.com
-------------------------------
数時間ほど調べたのですが解決できませんでした・・・
詳しい方ご回答をお願いします。<(_ _)>

A 回答 (2件)

@の前に¥(円記号)を付けると良いと思います。


\@
な感じです。

この回答への補足

回答ありがとうございます。
半角の \@ で文字化けしませんでした。
その後詳しく調べたりテストしてみましたら
登録画面で登録する場合には、単なる @ だけでも文字化けしませんでした。
でも、CGIに直に書きこむ場合には @ で直接書くと文字化けする事がわかりました。
その場合でも、\@ や @ なら文字化けしませんが、
メール info\@example.com
メール info@example.com
メール info\@example.com
のどちらにするべきでしょうか? どれでも同じでしょうか?

補足日時:2010/05/18 03:52
    • good
    • 0
この回答へのお礼

別のところに $mail を作り、
メール $mail
とする事で解決しました<(_ _)>

お礼日時:2010/05/19 14:31

その文字列は、perlのプログラムソースに ダブルクォートで括って、記述しているのでしょうか?


perl では、 @example は配列なので、ダブルクォートで括って変数展開してしまうと、存在しない配列として空文字列に置換され、@とそれに続く記号以外の文字は消えます。
シングルクォートで括れば、@配列の変数展開はされません。

この回答への補足

回答ありがとうございます。
登録画面ではなく、それを登録しておく CGIが別にありまして
$***** = <<_ATR_;
メールなどの署名
メール info@example.com
_ATR_

送信するCGIも別にありました。
$xxxxx = $*****;
~~~~
jcode::convert(\$xxxxx,'sjis');
&SendMail($~~, $~~, $~~, '', $xxxxx);

登録画面に直接 @ を使えば文字化けせず、
CGIのに直接 @ を書けば文字化けするようです。

補足日時:2010/05/18 04:06
    • good
    • 0
この回答へのお礼

別のところに $mail を作り、
メール $mail
とする事で解決しました<(_ _)>

お礼日時:2010/05/19 14:31

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