前提・実現したいこと
PHP・HTMLともに初心者です。
お問い合わせフォームを作成中で、メール送信まではできております。
他の項目は表示されるので、本文だけが表示されない問題について解決したいです。
発生している問題・エラーメッセージ
mb_send_mail() 関数で第3引数に渡している値が取得できていない、
あるいは表示できていない
該当のソースコード
[index.html]
html
1<form action="mail.php" method="post"> 2 3 <table class="contact-form"> 4 <tr> 5 <th class="">From</th> 6 <td class=""> 7 <input class="contact-form__default" type="email" name="senderAddress" placeholder="お客様のアドレス 例:tarou.exsample.jp"/> 8 </td> 9 </tr> 10 <tr> 11 <th class="contact-form__frameUnderThin">To</th> 12 <td class="contact-form__frameUnderThin"> 13 <p class="contact-form__font">×××××××@yahoo.co.jp</p> 14 </td> 15 </tr> 16 <tr> 17 <th class="contact-form__head">お名前</th> 18 <td class="contact-form__data"> 19 <input class="contact-form__default" type="text" name="name" placeholder="例:山田 太郎"/> 20 </td> 21 </tr> 22 <tr> 23 <th>ご依頼項目</th> 24 <td class=""> 25 <input type="checkbox" name="arrange">アレンジ制作 26 <input type="checkbox" name="composition">作曲 27 <input type="checkbox" name="other">その他 28 </td> 29 </tr> 30 <tr> 31 <th>希望納期</th> 32 <td class=""> 33 <input type="date" name="date" value="2018-01-11"> 34 </td> 35 </tr> 36 <tr> 37 <th class="">お問い合わせ内容</th> 38 <td class=""> 39 <textarea class="contact-form__textarea" name=”message” placeholder="お問い合わせ内容をご記入ください"> 40 </textarea> 41 </td> 42 </tr> 43 </table> 44 45 <div class="contact-form__button"> 46 <input class="contact-form__confirm" type="submit" value="メール送信"/> 47 </div> 48 49 </form>
[mail.php]
php
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8" /> 5 </head> 6 7 <body> 8 <?php 9 mb_language("Japanese"); 10 mb_internal_encoding("UTF-8"); 11 12 /*htmlからの取得項目*/ 13 $to = "×××××××@yahoo.co.jp"; 14 $name = $_POST['name']; 15 $title = "依頼内容"; 16 $content = $_POST['message']; 17 $address = $_POST['senderAddress']; 18 $arrange = $_POST['arrange']; 19 $date = $_POST['date']; 20 21 /* $request = "アレンジ制作 $arrange"; */ 22 $from = "From: $address"; 23 24 if(mb_send_mail($to, $title, $content, $from)){ 25 echo "メールを送信しました"; 26 } else { 27 echo "メールの送信に失敗しました"; 28 }; 29 ?> 30 </body> 31 32</html>
※テストを簡潔にするため、取得した値を表示していない変数があります。
「送信先のメールアドレス」と「タイトル」は入力させず、[mail.php]で設定します。
試したこと
・メール本文の表示確認
mb_send_mail()関数の第3引数、$content を $name に変更し、
本文に文字が表示されるかを確認したところ、本文には問題なく名前が表示されたが、
$content の内容はどこにも表示されなかった
・[mail.php]にて、$content の値を変更
$content にHTMLからの取得する message の値を代入せず、
$content = "これは本文です。";
のように、PHP側で文字を設定すると、送られたメール本文には
$content の内容が表示された。
・<textarea>を<input>に変更して実行
<textarea>タグの使い方が間違っている、あるいは理解できていないと考え、 <textarea>~</textarea> を <input type = "text"> に変更 → 「メール送信」結果は変わらず、送られたメール本文には $content の内容が表示されなかった。
補足情報(環境/ツールのバージョンなど)
レンタルサーバー:クイッカ にてファイルをアップロードし、テストメール送信を実施
・開発環境:Brackets
・PHP Version 7.3.12
原因と思われる事項
・コーディングミス
・php.ini の設定
・サーバー側の設定、問題
回答1件
あなたの回答
tips
プレビュー