contact フォームの送信ボタンを押して、メールの受信ができるようにしたい php
解決済
回答 3
投稿
- 評価
- クリップ 0
- VIEW 720
前提・実現したいこと
ポートフォリオ作成の為、テンプレートのコード模写をしてみまして、コンタクトフォームからメールを受信する設定をしようと思っています。
下のphpのコードにあるメールアドレスを、受信したいメールアドレスに変更したりしてみたのですが、contact のボタンから送信することができません。
下記コードの変更点など
お分かりになりましたら、アドバイスお願いいたします。
発生している問題・エラーメッセージ
contact フォームの送信ボタンを押して、メールの受信ができるようにしたい
該当のソースコード
<?php
// Check for empty fields
if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['phone']) || empty($_POST['message']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
http_response_code(500);
exit();
}
$name = strip_tags(htmlspecialchars($_POST['name']));
$email = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));
// Create the email and send the message
$to = "yourname@yourdomain.com"; // Add your email address inbetween the "" replacing yourname@yourdomain.com - This is where the form will send a message to.
$subject = "Website Contact Form: $name";
$body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email\n\nPhone: $phone\n\nMessage:\n$message";
$header = "From: noreply@yourdomain.com\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.
$header .= "Reply-To: $email";
if(!mail($to, $subject, $body, $header))
http_response_code(500);
?>
試したこと
コード内の
yourname@yourdomain.com
noreply@yourdomain.com
を受信したいメールアドレスに変更してみました
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+2
ローカル環境に構築している以上は、別途メールサーバ等の設定が必要です。
参考記事例:
Mac OSX Yosemite のXamp5.6.3でメール送信
teratail:PHP(ローカル環境)でメールフォームを試したい
【PHP】ローカル環境からメールを送信する方法
他「php ローカル環境 メール送信」で検索してみてください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
メールフォームは初学者が手を出す分野ではないです。
ざっくりいうと、インフラからクライアントまである程度以上の理解が必要です。
以下は理解必須項目です。
・DNS の設定(MXレコード, SPF, DKIM 他)
・mail システムへの理解(SMTP, 文字コード等)
・サーバ/ネットワークへの基礎知識(連投対策等)
・php の基本(POST/GET, session, output への理解, メールヘッダ/body の作り方)
・基本的なセキュリティ対策(csrf, メールヘッダインジェクション他)
・メールクライアントごとの問題のある特徴
適当に作るとスパムの発射台として使われ、ドメインが汚されます。
また、本件をポートフォリオとして提示された場合、担当者によっては落とすきっかけにする程度にはマズイ実装です。コードを見た場合は、全担当者がアウトと判定すると思います。
まずは上の必須事項に関して学習して下さい。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
m.ts10806
2019/07/30 16:37
PHPはどこで動作させているのでしょうか。
OSやバージョン含めた環境情報を追記してください
yasubei
2019/07/30 16:49
ご連絡ありがとうございます。
macOS Mojave
バージョンは10.14.6
になります。
不足などありましたら、よろしくお願いします。
初心者の為、ご迷惑おかけします。
m.ts10806
2019/07/30 16:50
質問本文に追記してください。
PHPのバージョンと、その環境をどのように構築したか(参考にした記事など)
yasubei
2019/07/30 17:01 編集
バージョンは、 PHP 7.1.23 (cli) でした。
参考にしたものは、テンプレートのコードですが、実際に模写ししたのは、HTMLだけです。HTMLは、テキスト比較ツールでコードに違いがないことはチェックしております。
m.ts10806
2019/07/30 17:03 編集
質問本文に追記してください。
MAMPとかXAMPPかとか仮想環境かとか1つ1つ入れたのかとか聞きたかったんですけどね・・
yasubei
2019/07/30 17:28
承知しました。
いただいた内容を解釈できるようやってみます。