• 締切済み

phpのフォームで携帯に送ると文字化け

お世話になります。 PCサイトのフォームから情報を入れて携帯にメールを飛ばすphpを作成しています。 フォームからPCやスマホにメールを飛ばすときは問題なく表示されるのですが、 フォームから携帯(ガラゲー)に飛ばすと文字化けします。 それも件名だけです。 どうすれば文字化けなく表示させることができるでしょうか? 教えてください。 <?php mb_language('ja'); mb_internal_encoding('SJIS'); session_start(); $name=$_SESSION["name"]; $furi=$_SESSION["furi"]; $tel=$_SESSION["tel"]; $email=$_SESSION["email"]; $ren=$_SESSION["ren"]; $ktel=$_SESSION["ktel"]; $fax=$_SESSION["fax"]; $iken=$_SESSION["iken"]; $to=$email; $subject="こんにちは"; $from= "From: "AAAAAA"; $message=<<<MESSAGE Eメールアドレス:{$email} お名前:{$name} 様 フリガナ:{$furi}様 電話番号:{$tel} 携帯電話番号:{$ktel} FAX番号:{$fax} 連絡方法:{$ren} <ご意見、ご要望> {$iken} MESSAGE; $message.=<<<MESSAGE MESSAGE; mail($to , $subject , $message,$from); session_unset(); ?>

みんなの回答

  • luka3
  • ベストアンサー率74% (312/418)
回答No.2

自分が実際に使っているものです。 mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_detect_order("ASCII, JIS, UTF-8, EUC-JP, SJIS"); // Fromの名前をMIMEに変換 $fromName = mb_encode_mimeheader(mb_convert_encoding($name,'JIS','auto')); $header = 'From: '.$fromName.' <'.$email.'>'."\n"; // メール送信 mb_send_mail($to_adr, $subject, $body, $header, "-f ".$email); $subjectのMIME変換はしていませんが、文字化けしているという報告は受けていません。 毎回違う内容で普通に漢字も使っています。 フォームおよびphpは共にUTF-8で書かれています。

全文を見る
すると、全ての回答が全文表示されます。
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>mail($to , $subject , $message,$from); mailがmb_send_mailのAliasになっているサーバでしょうか?少なくともsubjectは(化けるとのことなので)mb_encode_mimeheaderされていないようですから、Aliasになっていない(mb_send_mailではなく、書いたままのmailが使われている)と思われます。もしそうであれば渡したままの内容がメールとして送られますので、mb_language('ja')を書く意味はないです。 PCのメーラで受信したメールのメールヘッダ(Content-type)がどうなっているかを確認してください(出来れば生のメールデータを落としてエディタで確認すべきです)。 #まぁとりあえずはmb_send_mailにしてみるべきです。

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

関連するQ&A

  • メール送信での文字化け

    お世話になります。 ホームページから入力ホームに記入してもらい、送信するとphpを使用してメールを送信するプログラムを書いていますが、メールを送信するとメールの内容に文字化けが発生してしまいます。 どうすればよいでしょうか? 入力ホームのページからutf-8で統一すれば文字化けなくメールを送信することができましたが、 仕様の条件としてshift-jisにするとありますので、入力ホームはshift-jisにしてあります。 どうか教授ください。 <?php mb_language('ja'); mb_internal_encoding('SJIS'); session_start(); require_once("includes/common.php"); if(!isset($_SESSION["name"]) && !isset($_SESSION["tel"]) && !isset($_SESSION["email"]) && !isset($_SESSION["ren"])){ header("Location: contact.php"); } else{ $name=$_SESSION["name"]; $furi=$_SESSION["furi"]; $tel=$_SESSION["tel"]; $email=$_SESSION["email"]; $ren=$_SESSION["ren"]; $ktel=$_SESSION["ktel"]; $fax=$_SESSION["fax"]; $iken=$_SESSION["iken"]; $to=$email; $subject="こんにちは"; $to_admin="aaaa@bbbbb"; $subject_admin="ccccc@dddddd"; $from= "From: ".mb_encode_mimeheader("AAAAAA")."<>"; $message=<<<MESSAGE。 Eメールアドレス:{$email} お名前:{$name} 様 フリガナ:{$furi}様 電話番号:{$tel} 携帯電話番号:{$ktel} FAX番号:{$fax} 連絡方法:{$ren} <ご意見、ご要望> {$iken} MESSAGE; $message.=<<<MESSAGE MESSAGE; mb_send_mail($to,$subject,$message,$from); mb_send_mail($to_admin,$subject_admin,$message_admin,$from); session_unset(); } ?>

    • ベストアンサー
    • PHP
  • メールフォームから送信すると文字化けします^^;

    海外のHPのテンプレサイトにてダウンロードしたテンプレート内のメールフォームで送信すると文字化けしてしまいます^^; 下記がsendmail.php内の中身なのですが、何が足りないでしょうか?^^; ご教授よろしくお願いします。 http://www.premiumfreebies.eu/previews/ProFolio/ <? //This php file receives the post vars of the contact page and sends it to a email address //Settings $email = 'メールアドレス'; $subject = '[NAME] HP form mail '; $name = $_POST['name']; $from = $_POST['email']; $message = $_POST['message']; mb_language("ja"); mb_internal_encoding("UTF-8"); //Set the headers and send the mail $subject = str_replace('[NAME]', $name, $subject); $headers = 'From: '.$name.' <'.$from.'>'; mail($email, $subject, $message, $headers); ?>

    • ベストアンサー
    • PHP
  • phpで作成した携帯サイトのメールフォームがPCからは正常に送信されるのに、携帯から送信すると届きません。

    ソースindex <form action="kakunin.php" method="POST" > お名前 <input name="name" id="name" type="text"> フリガナ<input name="furi" id="furi" type="text"> ご住所<input name="add" id="add" type="text"> TEL<input name="tel" id="tel" type="text"> FAX<input type="text" name="fax"> E-MAIL <input name="mail" id="mail" size="30" type="text"> お勤め先名 <input name="k_name" id="k_name" type="text"> 勤続年数<input type="text" name="nensu"> 年収<input type="text" name="nenshu"> ご要望、ご質問等<textarea rows="5" cols="10" name="yobo"></textarea> <input type="submit" value="送信する"> </form> ---------------確認画面----------------------- <?php $name =$_POST[name]; $furi =$_POST[furi]; $add =$_POST[add]; $tel =$_POST[tel]; $fax =$_POST[fax]; $mail =$_POST[mail]; $k_name =$_POST[k_name]; $nensu =$_POST[nensu]; $nenshu =$_POST[nenshu]; $yobo =$_POST[yobo]; if($name == ""){ $err_massage .= "お名前を入力してください。"; } if($furi == ""){ $err_massage .= "フリガナを入力してください。"; } if($tel == ""){ $err_massage .= "TELを入力してください。"; } if($mail == ""){ $err_massage .= "E-MAILを入力してください。<br />"; }else{ if(ereg("([0-9a-zA-Z._-]{1,})@([0-9a-zA-Z.-_]{1,})",$mail)){ }else{ $err_massage .= "E-MAILを正しく入力してください。"; } } if($err_massage != ""){ print <<<ERR $err_massage <a href="index.html">戻る</a> ERR; }else{ print <<<FORM <form action="sosin.php" method="post"> お名前 $name フリガナ $furi ご住所 $add TEL(携帯可) $tel FAX $fax E-MAIL $mail お勤め先名 $k_name 勤続年数 $nensu 年収 $nenshu ご要望、ご質問等 $yobo <input name="name" value="$name" type="hidden"> <input name="furi" value="$furi" type="hidden"> <input name="add" value="$add" type="hidden"> <input name="tel" value="$tel" type="hidden"> <input name="fax" value="$fax" type="hidden"> <input name="mail" value="$mail" type="hidden"> <input name="k_name" value="$k_name" type="hidden"> <input name="nensu" value="$nensu" type="hidden"> <input name="nenshu" value="$nenshu" type="hidden"> <input name="yobo" value="$yobo" type="hidden"> <input type="submit" value="送信する"> </form> FORM; } ?> -送信画面- <?php $name =$_POST[name]; $furi =$_POST[furi]; $add =$_POST[add]; $tel =$_POST[tel]; $fax =$_POST[fax]; $mail =$_POST[mail]; $k_name =$_POST[k_name]; $nensu =$_POST[nensu]; $nenshu =$_POST[nenshu]; $yobo =$_POST[yobo]; mb_language("Ja") ; mb_internal_encoding("shift-JIS") ; $from_mail = '送信メールアドレス'; $msg = "【タイトル】 "."お名前:"."$name"." フリガナ:"."$furi"." 住所:"."$add"." TEL:"."$tel"." FAX:"."$fax"." E-MAIL:"."$mail"." お勤め先名:"."$k_name"." 種類:"."$shurui"." 勤続年数:"."$nensu"." 年収:"."$nenshu"." お問合せ内容:"."$naiyo_out"." ご要望・ご質問等他:"."$yobo"; $sb = "【タイトル】"; $rcd = mb_send_mail($from_mail, $sb, $msg, "From:$mail"); ?>

    • 締切済み
    • PHP
  • メール文書の文字化けに困っています。

    下記のPHPを使ったメールフォームを作成しました。 送信は問題無く行うことができるのですが、送信先に受信されたメール文書について日本語が文字化けしてしまいます。 下記のソースをご覧頂き、原因がおわかりの方がおりましたらご教授頂けますと誠に幸いです。 宜しくお願いいたします。 <?php //create short variable names $name=utf8_decode($HTTP_POST_VARS['name']); $email=utf8_decode($HTTP_POST_VARS['email']); $subject=utf8_decode($HTTP_POST_VARS['subject']); $message=utf8_decode($HTTP_POST_VARS['message']); $name=trim($name); $email=trim($email); $subject=StripSlashes($subject); $message=StripSlashes($message); //modify the next line with your own email address $toaddress='test@test.domain'; mail($toaddress,$subject,$message,"From: $name <$email>"); //clear the variables $name=''; $email=''; $subject=''; $message=''; echo "response=passed"; ?>

    • 締切済み
    • PHP
  • phpフォームで携帯へメール送信した場合の文字化け

    過去のよく似た事象を検索しましたが解決しなかったので 質問します。よろしくお願いします。 携帯電話のメールアドレスに送信するWEBフォームをphpで 作成したいのですが、文字化けが直らずに困っています。 コードは次のような感じです。 PCへのメールは文字化けせず、DoCoMoへ送るとsubjectは正常で本文が化けます。 またauとvodafoneへ送るとすべて化けます。 $to = "$_REQUEST['$email']"; $from = "info@aaa.bbb"; $subject = "テスト送信"; $message = "テストメールです" . $headers ='From: '. $from . "\r\n"      .'MIME-Version: 1.0' . "\r\n"      .'Content-Type: text/plain; charset=iso-2022-jp' . "\r\n"      .'Content-Transfer-Encoding:7bit' . "\r\n"      .'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)==TRUE) print("メールを送信しました"); else print("メール送信に失敗しました"); 動作環境はSunOS5.7、Apache2.0、php5.0.3です。 コードはEUCで書いています。

    • ベストアンサー
    • PHP
  • 問い合わせフォーム 文字化け

    ホームページに問い合わせページを作るためkent-webさんのPOST-MAILのフォームを使用させてもらいました。 http://www.kent-web.com/data/postmail.html チェックモードでの確認は問題なかったんですが、 テストで登録しようとしたらエラー表示が文字化けします。 それと、確認画面の次のページにいこうとすると、 「Undefined subroutine &main::mimeencode called at postmail.cgi line 483. 」 というエラーが出ます。 ちなみに483行目は、 # MIMEエンコード if (-e $mimew) { require $mimew; $subject2 = &mimeencode($subject); if ($in{'name'}) { $from = &mimeencode("\"$in{'name'}\" <$email>"); } else { $from = $email; } } else { $subject2 = &base64($subject); if ($in{'name'}) { $from = &base64("\"$in{'name'}\"") . " <$email>"; } else { $from = $email; } } charsetがutf-8なのが問題なのかと思い、s-jisに変えるとHTML自体が文字化けしてしまいました。 原因、対処法を教えてください。お願いします。

    • ベストアンサー
    • CGI
  • こんにちは。PHPでメールフォームを送信したいのですが、

    こんにちは。PHPでメールフォームを送信したいのですが、 メールが文字化けしてしまいます。 PHP初心者です。 時間をかけてゆっくりやりたいのですが、 仕事でやっているため、そうも言ってられず。。。 ======================================================= $msg= 'Name: '.$_POST['name'].'<br /> Email: '.$_POST['email'].'<br /> IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br /> Message:<br /><br /> '.nl2br($_POST['message']).' '; $mail = new PHPMailer(); $mail->IsMail(); $mail->AddReplyTo($_POST['email'], $_POST['name']); $mail->AddAddress($emailAddress); $mail->SetFrom($_POST['email'], $_POST['name']); $mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback"; $mail->MsgHTML($msg); $mail->Send(); ========================================================================= 一部ですが、こちらを修正すればよいのでしょうか? 宜しくお願いいたします。

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

    いつも適切なご回答誠にありがとうございます。PHP初心者で参考書やnetを頼りに制作している者です。現在フォームを作成していて確認メールでの質問です。送信者宛てには上手く送信されるのですが、管理者宛のメールの件名と送信者がうまく表示されません。どなたかお助けください。 //----------------ここから管理者宛にMAIL送信------------------------// $subject="資料請求がございました"; $subject=mb_convert_encoding("$subject","JIS","SJIS"); $subject=mb_encode_mimeheader($subject); $other = stripslashes($other); $from="${name01}"; $from=mb_convert_encoding("${from}","JIS","SJIS"); $from = base64_encode($from); $from = "=?ISO-2022-JP?B?" . $from . "?="; $from = "From: \"".$from. "\"" . "<" . "$e_mail" . ">"; $s_msg="以下の内容で資料請求がありました。資料発送の手配をお願いします。\n _/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄\n ■お名前:${name01} ■電話番号:${tel} ■E-メール:${e_mail} ■ご意見・ご要望:\n\n${other}\n _/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄_/ ̄\n ${d_site}|資料請求フォーム\n \n"; $s_msg = mb_convert_encoding($s_msg,"JIS","SJIS"); $sendto = "$d_recipient"; mb_send_mail($sendto,"$subject","$s_msg","$from"); //-------------------------------------------------------------------------------------//

    • ベストアンサー
    • PHP
  • フォームメールでタイトルが文字化けする

    こちらのサイトにある http://www.sapphirus.biz/php/sformmail/ フォームメール1というものを利用して確認画面つきのフォームを作成しております。 こちらのサイトでダウンロードしたものをデフォルトで利用すると ユーザーに対する自動返信メールに sformmail.php内の設定項目に記述したメールアドレスが メールの送信者の所に表示されて返信されてきます。 / 設定 $mail_to = 'XXXXXXXXXXXX'; // フォームデータを受け取るメールアドレス $mail_subject = 'S.B.フォームメール送信'; // 受け取る時のSubject(件名) $reply_subject = 'S.B.フォームメールより自動返信です'; // 送信者へ自動返信のSubject(件名) $mail_bcc = ''; // BCCで受け取りが必要な場合は設定 $internal_enc = 'UTF-8'; // 文字エンコード 送信者のところにメールアドレスだけでなく、 日本語名も追加して自動返信メールを使いたかったため、 sformmail.php内の // メール自動返信 if ($_SESSION['autoReply'] && $_SESSION['email'] && is_file('reply.php')) { $reply_header = "From:{$mail_to}\n"; if ($mail_bcc) $reply_header .= "Bcc: {$mail_bcc}\n"; $reply_header .= "X-Mailer: {$x_mailer}"; include ('reply.php'); $reply_message = html_entity_decode($reply_message, ENT_QUOTES, $internal_enc); $reply_message = str_replace("<br />", "", $reply_message); $reply_message = str_replace("\t", "\n", $reply_message); $reply_message = mb_convert_encoding($reply_message, $internal_enc, 'AUTO'); mb_send_mail($mail_from, $reply_subject, $reply_message, $reply_header); } にある $reply_header = "From:{$mail_to}\n";を $reply_header = "From:{YYYYYYY}{$mail_to}\n"; と変更しました。 結果、Gメールでメールを受け取ると送信者欄にYYYYYYYとメールアドレスが表示されるのですが メーラーによってYYYYYYYの部分が文字化けしてしまいます。 色々と調べておりましたら文字コードが $internal_enc = 'UTF-8'; // 文字エンコード という設定がありますが $reply_header = "From:{YYYYYYY}{$mail_to}\n"; に反映できていないのが問題と見受けられますが 修正方法がわかりません。 当方CGIの知識がないため、ご教示いただければ幸いです。

    • 締切済み
    • PHP
  • qdmailを使用したPHPフォームにて

    qdmailを使ったPHPのフォームを作っています。 index.html → receive.html → completion.html という順序で展開します。 全ての処理は、completion.htmlに書かれています。 receive.htmlは、プレビュー画面です。 completion.phpの内容は、 (1)thank you 表示 (2)管理者へのフォーム内容メール送信 (3)送信者へ、thank youメールの送信 質問: receive.htmlから、戻るボタンを使うと、フォーム内容が全て消えてしまいます。 sessionを使うというのは、分かるのですが、具体的に分かりません。 index.htmlの内容は、以下です。 <?php session_start(); $_SESSION['mail_send_done'] = false; /* 入力パラメータ */ $param = array( 'zip', 'c_add', 'corp_or_indv', 'c_name', 'c_name_furigana', 'attending', 'name', 'name_furigana', 'tel1', 'tel2', 'tel3', 'fax1', 'fax2', 'fax3', 'mail', 'remail' ); if($_SERVER["REQUEST_METHOD"] == "POST"){ foreach($param as $key) { $$key = $_POST[$key]; } }else{ $$key = ""; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ・・・・・・・・・・・ receive.htmlは、以下で始まります。 ?php /* 入力パラメータ */ $param = array( 'zip', 'c_add', 'corp_or_indv', 'c_name', 'c_name_furigana', 'name', 'attending', 'name_furigana', 'tel1', 'tel2', 'tel3', 'fax1', 'fax2', 'fax3', 'mail', 'remail' ); if($_POST['corp_or_indv']=='A') { $INQ_TXT = "個人"; }elseif($_POST['corp_or_indv']=='B') { $INQ_TXT = "法人"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>

    • ベストアンサー
    • PHP