お世話になります。
【やりたい事】
問い合わせフォーム等で問い合わせを受けた際に返信するメールの本文を
事前にMySQLのレコードに登録しておいて、問い合わせ等が来た際に返信
したいです。問い合わせフォームに関しても、問い合わせの内容や名前
等をMySQLに登録する形です。
問い合わせ内容をMySQLに登録する事・それに対してmb_send_mail関数を
使って問い合わせ内容の確認のメールを送る事は出来ています。
【ご教授頂きたい事】
その際にMySQLに登録しておいた本文に問い合わせフォームに入力された
名前やメールアドレスなどを代入したいのですが、そのやり方が分かり
ません。
具体的には、MySQLに登録するメール本文のデータに問い合わせフォーム
に入力された名前などの変数をメール本文のデータのしかるべき位置に
代入したいのです。
<----フォームの入力部分省略---->
$email = $mail;
$mail_title = $row["hametome_mail_title"];
$mail_body = $row["hametome_mail_body"];
$from = 'メールアドレス';
$header = "From: $from\n";
$parameter="-f メールアドレス";
mb_send_mail ($email, $mail_title, $mail_body,$header,$parameter);
$row["hametome_mail_title"]は、事前にMySQLに登録しておいたデータの
メールタイトル部分、$row["hametome_mail_body"]は本文です。
現状の状態としては、$row["hametome_mail_body"]に問い合わせフォーム
に入力した名前などが入ってない文章であれば正常に送信される状態です。
ちなみにhametome_mail_titleとhametome_mail_bodyのデータ型はTEXT型
です。
------------------------------------------------------------------
$namae様
お問い合わせを受け付けました
------------------------------------------------------------------
のように本文をMySQLに登録しても、ダメなようでというか上記のような
内容ではMySQLに登録出来なかったりもします^^;
どのようにすればこの機能を実現できるでしょうか?ご教授のほどよろ
しくお願いします。
No.2ベストアンサー
- 回答日時:
代入するのではなく、登録されているひな形の名前部分などを「置換する」という方向で考えればよいかと思います。
この回答への補足
早速のご回答ありがとうございます。
置換するというとstr_replace関数などを使って$namaeを置き換えるような
感じでしょうか?
------------------------------------------------------------------
$toiawase_name様
お問い合わせを受け付けました
------------------------------------------------------------------
ひな形の内容を上記のように直し、
$email = $mail;
$mail_body1 = $row["hametome_mail_body"];
$mail_body2 = str_replace($toiawase_name, $namae,$mail_body1);
$mail_body = $mail_body2;
$mail_title = $row["hametome_mail_title"];
$from = 'メールアドレス';
$header = "From: $from\n";
$parameter="-f メールアドレス";
mb_send_mail ($email, $mail_title, $mail_body,$header,$parameter);
としてみたのですが、どうもうまくいきません^^;お手数かとは存じ
ますが具体案を教え頂けませんでしょうか?
$toiawase_name様を__name__ 様に変更し、よくよく考えてみれば
マルチバイト文字だったので、str_replaceをmb_ereg_replaceに変更
してみたところ、うまくいきました。
アドバイスいただきまして、ありがとうございました。
No.3
- 回答日時:
補足ありがとうございます。
そういうことですか^^;
テキスト型ということは、DBに登録されたひな形の変数も文字列扱いされてしまうので、恐らくそのひな形を用いてはNGでしょうね。
$result = mysql_query($sql);//SQL発行
$rtn = mysql_fetch_assoc($result);
$mail_body = $rtn['toiawase_name'] . $rtn['hametome_mail_body'];
//$rtn['toiawase_name'] == 問合せ者名
//$rtn['hametome_mail_body'] == "様\r\nお問い合わせを受け付けました"
//であることが前提
これが一番手っ取り早いと思います。
それとも・・・また意味取り間違えてます??^^;
要するにひな形の文の「○○様」の「○○」をDBから引っ張った値にしたいってことですよね?
ご回答頂きましてありがとうございます。
文字を置き換える方法でどうやらうまくいったようです。お教え頂きまして
ありがとうございました^^
No.1
- 回答日時:
一つのテキストボックスに登録したいということですか?
$mail_body = $namae . "様" . "\r\n" . $naiyou
単純にこれではだめですか?
それとも意味が違うでしょうか?
この回答への補足
早速のご回答ありがとうございます。私の説明が悪かったようで申しわ
けありません。
まず、メール本文を問い合わせフォームとは別個のフォームから事前に
------------------------------------------------------------------
$namae様
お問い合わせを受け付けました
------------------------------------------------------------------
としてMySQLに登録しています。この本文を登録しているテーブルを仮に
Answerテーブルとします。この本文のデータはAnswerテーブルのhametome_mail_bodyに登録されています。
問い合わせフォームから問い合わせをする際、問い合わせ完了のファイ
ル仮にmail_comp.phpとします。
mail_comp.phpは、問い合わせ内容や問い合わせをした方の名前・メール
アドレス等の記入内容をMySQLに登録します。仮に問い合わせ内容を登録
するテーブルをtoiawaseテーブルとします。
mail_comp.phpは、問い合わせを問い合わせフォームから頂いた際にtoiawaseテーブルに問い合わせデータを登録するとともにSELECT文で、Answerテーブルのhametome_mail_bodyに入っている本文のデータ(上
の点線の中の文字列)を取り出し、mb_send_mail関数でメールを送信
しています。
その際にSELECT文で、Answerテーブルのhametome_mail_bodyに入って
いる本文のデータ(上の点線の中の文字列)を取り出し、$mail_body
に代入しているのですが、Answerテーブルから取り出した本文のデー
タ(上の点線の中の文字列)の$namaeに問い合わせフォームに入力さ
れた名前を代入したいという事なのです。
うまく説明できなくて申し訳ありません^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPからメールを送る@さくらイ...
-
さくらサーバーにて、phpからメ...
-
PHPでの仮登録時の会員認証メー...
-
別ファイルの変数を呼び出した...
-
PHPで吐き出した画像にリンクを...
-
3つ以上の論理積は利用可能なの...
-
[PHP] 任意のDNSでIPアドレスを...
-
正規表現を使い、URLで条件分岐...
-
MySQLの似たような命令を ルー...
-
Cドライブにある画像を表示したい
-
違法アップロードについて
-
phpでの画像表示
-
frame間の値の受け渡し方法
-
最も速い画像合成処理を教えて...
-
PEARのパッケージmail_mimeのイ...
-
チェックボックスの値が受け取...
-
ディレクトリの正規表現について
-
makefile でファイルをコピーす...
-
PHPについての質問です。
-
forで永久ループさせてしまった...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらサーバーにて、phpからメ...
-
Received-SPFでレンタルサーバ...
-
指定した時間にPHPプログラムを...
-
ワードプレス 予約システム
-
ネットワーク初心者です。
-
phpでメール送信できません 原...
-
コマンドプロンプト、VBSでの添...
-
ローカル環境でのメール送信
-
メールの文字化け
-
mb_send_mail() 第 4、5 引数の...
-
【初歩?】変数をセットできな...
-
mb_sendmailで送信できない
-
POP Before SMTPでメールを送信...
-
PHPでの仮登録時の会員認証メー...
-
セレクトメニューの値をメール...
-
PHPsendmailにて送信元を変更
-
mail関数を使った場合のReturn-...
-
メール受信エラー【Net/POP3.php】
-
メールを複数に送る、Bccについて
-
PHP+MysQLで返信する内容をMy...
おすすめ情報