• ベストアンサー

PHPを使用してメールを送信する際、「¥」が挿入されてしまう

PHPを使用してメールを送信する際、「¥」が挿入されてしまう PHPを使用してメールを送信する際、特定の文字列の場合、 「¥」が挿入されてメールされます。 例えば、PHPで作成したメール送信画面で「予定」と入力し、 確認画面では「予定」と表示されていますが、 携帯メールに届いた文章には、「予\定」と入っています。 理由等、いろいろ調べましたら分かりませんので、 ご存知の人がいましたら教えていただけると大変助かります。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

「予」はshift-jisで975Cで、いわゆる5C問題ですね。 メール送信時に文字コード変換をかけていると思いますが そこでなんらかのエスケープ処理がはいっているのだとおもいます。 具体的な対策は元ソース次第なのでなんとも言えません。

toshi1121
質問者

補足

$str = stripslashes($str) 5C問題でいろいろ検索してみて、上記の関数を使うことにより解決しました 素早い回答、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPを使用してのメール送信

    PHPを使用してフォームを作成し、そのフォームに入力後、入力者へのメール及び自分のメールにも送信させたいのですが、その方法がわかりませんので、皆様よりのご教授を受け賜りたく、質問をさせていただきます。

    • 締切済み
    • PHP
  • PHPで作成したメールフォームへの画像挿入・送信

    PHPで作成したメールフォームに画像が挿入できて、その画像がメール送信できるようなPHPのロジックを、ご教示ください。

    • 締切済み
    • PHP
  • PHPでメール送信-ヘッダについて

    フォームから入力した内容を、PHPでメール送信させる際についての質問です。 mb_send_mail($to, $subject, $body); として、 $body(本文)の後ろに、メールのヘッダ部分を記述したいのですが、いろいろ検索をかけて調べていますと、"From:"に-fオプションを付けなければいけない場合があるらしいのですが、-fオプションとはどういった動きをするのでしょうか。 説明を読んだのですが、よくわかりませんでした。 エンベロープのsenderアドレスを設定する際に使用するそうですが?? Return-Pathの設定をしたくて、検索をかけていたのですが、この方法でしょうか? また、X-Mailerの設定は X-Mailer: PHP/' . phpversion(); という文字列そのまま変更なしで追加すればいいのでしょうか。 調べていると、こういった記述のサイトがたくさんあったのですが、 phpversion(); の()に、バージョンを入れなければいけない、ということはありますでしょうか。 phpのバージョンはphp4です。 ご存知の方ご回答ください。お願いします。

    • ベストアンサー
    • PHP
  • PHPでメール入力画面→送信完了画面を作りたい

    質問失礼します。 HPのメールフォーム作成に取り組んでいて、 メール入力画面→送信完了画面を作成したいです。 HTML,CSSの知識はあるのですが、 PHPの知識が全くなく調べながら作っています。 現状、送信用HTMLとphpファイルを使って、 HTMLファイルで入力した内容をメールアドレスまで飛ばすところまでは作成できました。 長くなるので簡易的に下に記述します。 【sendmail.php】 <?php mb_send_mail("メールアドレス","件名","$_POST["body"]","ヘッダー") ?> 【html】 <html> <form method="POST" action="sendmail.php"> <textarea name="body"></textarea> <input type="submit" value="送信"> </form> </html> 【動作】 入力画面で任意に内容を入力し、送信をクリック→真っ白の画面(メールアドレスに内容が届く) という状態です。 真っ白の画面を送信完了画面として表示するには、 【sendmail.php】ファイルに直接htmlを記述していくのが、 一般的な方法なのでしょうか。 いろいろと調べているのですが、どの方法が一般的で一番いい方法なのかを 探している段階です。 どなたかアドバイスをお願いします。 (確認画面、エラー画面は、現段階では抜きで、 とりあえず送信画面→送信完了画面を作りたいです。)

    • 締切済み
    • PHP
  • phpでメール送信ができなくなりました

    phpを使って数日までWeb上でメールの送受信を行うプログラムを作成し使用していたのですが、昨日からメールが送信されず、タイムアウトのような現象が起きました。 原因が思いつきません。 よろしくお願いします。 動作環境:Apache2.0.54+PHP4.4.2+WindowsXP

    • 締切済み
    • PHP
  • PHP メール送信ができない

    いつもお世話になっております。 最終的にやりたいことは、営業マンの受注一覧をPDF作成し そのPDFを営業マンにメールで送信する(添付ファイル)ということですが。 (PDF作成まではできております) これには、 とても道のりが遠そうです。 まずはじめに 普通に PHPから メールが送信できるか 試してみました。 <?php if (mb_send_mail("自分のアドレス", "TEST MAIL", "This is a test message.", "From: 自分のアドレス")) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?> 文字化けの対策等もしなければいけないと思いますが とりあえず これで メールが届くかと思い やってみました。 結果は 「メールが送信されました。」と表示されておりますが 実際には 送られておりません。 いろいろと検索してみましたが これから どうすればいいのかが わかりません。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpの携帯空メール送信

    phpで携帯空メール送信処理を実装しようとしていますが、よく分かりません。 ボタンで次にとか押すと、phpで指定したタイトルや内容に任意の文字列を設定し、携帯のメール送信窓を開く、という事をしたいです。

    • ベストアンサー
    • PHP
  • phpを使ってのメール送信について

    会社のホームページを任されて、phpでメールフォームを作成中です。 phpは本を購入したり、サイトを閲覧しながら勉強中ですが時間が取れず、まださほど詳しくありません。 1.情報入力→2.確認画面→3.お礼画面 と3頁を作ってそれぞれ確認しましたところ、入力情報は受け渡しができました。 その後、メールアドレスへ入力していただいた情報を送るプログラムを見様見真似で作ってみたところ動かなくなってしまいました。 どこがおかしいのか添削・ご意見(できれば初心者にもわかるように)いただけないでしょうか。 よろしくお願いします。 <p>入力内容</p> <form method="POST" action="(3.のページへのパス)"> <table border="1" width="80%" cellspacing="5"> <tr><td align="right" width="20%">お名前:</td> <td align="left" width="80%"><?php print($_POST['name']);?></td></tr> <tr><td align="right">e-mail:</td> <td align="left"><?php print($_POST['mail']);?></td></tr> <tr><td align="right">お問い合わせ:</td> <td align="left"><?php print($_POST['comment']);?></td></tr> </table> <p></p> <input type="submit" name="Submit" value="送信"> </form> ↑ここまでが確認画面でこの下にすぐ続けて <?php $name = $_POST['name']; $mail = $_POST['mail']; $comment = $_POST['comment']; $to = '(送信先メールアドレス)'; $subject = 'サイトからの問い合わせ内容'; $massage = '$name . $mail . $comment'; if(!$_POST['submit']){ mb_language("Japanese"); mb_internal_encoding("UTF-8"); $header = 'From: ' . $from . "\n"; $to = mb_encode_mimeheader(mb_convert_encoding($name, "JIS", "UTF-8")) . ' <' . $mail . '>'; $param = '-f' . $from; mb_send_mail($to, $subject, $message, $header, $param); } ?> ↑2頁めに挿入したメールへの送信指示の(つもりの)部分です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPメール自動送信

    PHP初心者です。 アドレス入力→送信→仮登録完了→入力していただいたアドレスに本登録用のURL付きメールが届く という仕組みを作っていますが、送信を押して仮登録用DB保存まではできています。 しかしそのあとメールが送られてきません。 nyuuryoku.phpのページで入力フォーム(name="mailaddress")にアドレスを入力して「送信」をクリックした時の画面です↓ //soushin.php(仮登録完了のページ) <?php session_start(); include '../db.php'; if (!isset($_SESSION['join'])) { header('Location: nyuuryoku.php'); exit(); } else { //登録処理 $sql = sprintf( 'INSERT INTO karitouroku VALUE( %d,"%s","%s")', 0, mysql_real_escape_string($_SESSION['join']['mailaddress']), date('Y-m-d H:i:s')); $result = mysql_query( $sql,$link )or die(mysql_error()); } //自動メール送信 $to = $mailaddress; $subject = '仮登録'; $message = "24時間以内に本登録にお進みください"; $headers = mb_encode_mimeheader(mb_convert_encoding("山田太郎","JIS","EUC-JP"))."<aaa@abc.com>"; mail($to, $subject, $message, $headers); echo "$mailadr宛に確認メールを送信しました。"; ?> 私は$to = $mailaddress;の書き方が間違っているのかと思いましたが、正しい記述がわかりません。 さらに、送られてきたメールのURLをランダムな文字列にしたいとも考えています。 その場合は仮登録用のDBにもフィールドを追加しなければなりませんか? 今のところ仮登録用のDBのフィールドには id・mailaddress・created(登録日)を格納しています。 そしてそのURLにある本登録にアクセスした時、ユーザーが入力したアドレスが表示されている状態にしたいのです。 このソースに書き加えるようにしたいのですが、メールの自動送信・ランダムな文字列生成どなたかわかる方がいらっしゃいましたらご教授ください。 また、本登録にユーザーのアドレスが呼びだされる仕組みもお願いします。 (説明が下手で申し訳ありません) よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでのメール送信フォーム

    現在、PHPメール送信フォームを作成しています。 SMTPを使用してフォームを作成したいのですが、SMTPをどのように組み込んだら良いのかいまいち分かりません。 私の環境は、Windows2000、Webサーバー『APACHE』、PHP『php-4.2.0-Win32』を使用しております。 どなたか分かる方がいましたら、どうぞよろしくお願いします。

    • 締切済み
    • PHP