PHPmeiler  PHP 入力フォーム

このQ&Aのポイント
  • PHP入力フォームのメールの送受信コード書く際、受信率の高いPHPmeilerを使ったお問い合わせのメールフォームを作りたい
  • 参考サイトURL: https://bonsaimasa.hatenablog.com/entry/2019/03/27/094608
  • 質問文章に付属の画像は参考サイトのコードの一部を赤線を引いたものであり、$smtp_userと$from_addressはメールの宛先アドレスを指定するためのものです
回答を見る
  • ベストアンサー

PHPmeiler  PHP 入力フォーム

PHPmeiler  PHP 入力フォーム 入力フォームのメールの送受信のコード書こうと思っているのですが、その際、受信率の高い、PHPmeilerを使ったお問い合わせのメールフォームを作りたいのですが、 参考サイトURLhttps://bonsaimasa.hatenablog.com/entry/2019/03/27/094608 この質問に付属している画像は参考サイトのコードの一部を赤線を引いた画像です。 付属の写真はOffice 365を使ってメールの送受信を行うプログラム(php)の一部の画像ですが、その画像の赤い線の$smtp_user = "dummy@bonsai.com";はアドレスでしょうか?他人から入力フォームから送られてきた情報を自分(私)のアドレスに送られるように 自分のアドレスを記載するのでしょうか? また、画像の赤い線もう一つ下にある$from_address = "dummy@bonsai.com";というのは、他人から入力フォームから送られてきた情報を自分(私)のアドレスに送られるように 自分のアドレスを記載するのでしょうか? 回答よろしくお願いいたします

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6629/9392)
回答No.2

>$host >$smtp_user >$smtp_password この3行は1セットで、メール送信サーバと、それにログインするためのユーザーIDとそのパスワードを記述します。 そのスクリプトが走ると、あなたの代わりにメール送信サーバにアクセスしてメールを送信すると言うわけです。 ですから、メール送信サーバとして使えるのは別に、Office365サーバのみではありません。 あなたが契約しているプロバイダにメールサービスがあれば、そのメールサーバのホスト名・ユーザーID・パスワードを記述することで、自分のプロバイダを使ってメールを出すことができます。 >$from_address こちらは、メール送信プロトコル上、差出人名(From: )に何らかのメールアドレスを書かなければいけないので、何でも良いので記述します。 存在しないアドレスでもOKなので、サンプル記述の dummy@~ のままでも構いません。 なんなら「どのページのフォーム@php-mail.jp」みたいな記述をしておけば、どこのページから送信されたのか分かって良いかもしれませんね。 ※メールアドレス自体は英数字のみで書く必要があります。その次の行の $from_name の方は全角文字を使っても構いません。 ---- そしてフォーム入力されたメールの送信先は、もう少し先の >$admin_to こちらのアドレスに、あなたのメールアドレスを記述してください。 送信メール内容もその付近で構成します。 フォームに用意した変数名を文章に組み込んで、わかりやすいメール文面にできます。

その他の回答 (1)

  • agehage
  • ベストアンサー率22% (2543/11319)
回答No.1

メールですから、送信にはメールサーバが必要です つまりメールは以下のように運ばれます フォーム→メールサーバ→メールソフト メールサーバを利用するにはサーバーアドレス、ユーザー名、パスワードが必要です $hostはメールサーバです $smtp_userはメールサーバにログインするためのユーザー名です $from_addressはそのメールが誰から送られたことにするか?です。普通は送信者のアドレスですが、今回はファームメールなので適当な名前をつけることになります。このフォームが正しく設置できたら、フォームを使って送信されたメールはあなたのメールソフトではこのアドレスから送られたように見えます

関連するQ&A

  • 難題です。php入力フォーム作成について

    困ってます。php入力フォーム作成について 何とか入力フォームと確認画面を表示させるコードを書いたかですが、 最後に「入力完了画面」を表示させるコードと、PHPmailerを使って、入力された情報をメールで送受信までを作ろう思っているのですが、独学ですのでよくわかりません。 自分の書いたコード入力フォームと確認画面のコード(1)(2)以下 自分が書いた入力フォームのHTMLとエラーメッセージが表示させるコードは以下のURLです (1)contact.html(入力フォームと記入漏れエラーの表示させる https://drive.google.com/file/d/1GrdgTj601S07I0o2seNOdXdela5ODQMm/view?usp= (2)confirmation.php(入力確認画面表示コード) https://drive.google.com/file/d/1UCihtfZCFPvoTQC95R6hLX3q_x5HN9kj/view?usp=sharing そして完了画面とメールのphpmailerを使った送受信のコードで 参考にしたいるサイトは以下のURLです。 入力ホームの送受信の方法PHPmailer https://bluecode.io/basic/basic1/basic1-3/# このサイトには入力フォーム→確認画面→完了画面→メールの送受信設定 の順番で書かれていますが、まずここに書いかれている「完了画面のsend.php」のコードを真似したいところですが、今まで自分の書いてきたコード(1)(2)と少し異なるので、完了画面どう書いたら良いでしょうか?自分の書いたコードを参考サイトにある完了画面send.phpを応用して、かけないとPHPmailerのコードも書けないと思います。 困っています。詳しい方回答よろしくお願い致します。少し大変かもしれません。 送付画像は参考にしているURLの画像の一部です。

    • 締切済み
    • PHP
  • phpで入力フォームに顧客が入力した情報を直接折り

    phpで入力フォームに顧客が入力した情報を直接折り返しメールでの受け取りについて。 下記のURLでの入力フォーム→確認画面→折り返しメールのコードを参考に真似して書いているのですが、 https://www.web-officer.com/php/how-to-make-inquiry-form.php URLの一番下の説明submit.phpファイルについての23行目のコードについて以下のように説明しているのですが、 一個目の$flg = はHTMLコードで作った入力フォームに入力されたメールアドレス宛て(=お問い合わせフォームに入力したお客様)にメールを飛ばす為の設定です。 メールの送り元はexample@example.comということにし、メールのタイトルは「【Web担当者の作り方】です。お問い合わせいただきましてありがとうございます!」になるよう設定しています。 要するにお客様の控え用としてお客様にメールを飛ばすということですね。 実際に使用する際には任意のメールアドレスに書き換えて下さいね。 とコードの書き方の説明に書かれているのですが、「 実際に使用する際には任意のメールアドレスに書き換えて下さいね。」とありますが、お客さまが入力したメールアドレスは多様にあるため、入力したメールアドレスは分かりませんよね? 実際に使用する際には任意のメールアドレスに書き換えて下さいね。 とは任意のどんなメールアドレスなのでしょうか? お客様によってアドレスは違いますよね? 様々な顧客が多様なメールアドレスを使うことを想定した場合、この場合どんなメールアドレスを書いたらよいのでしょうか? 回答よろしくお願いします。

    • 締切済み
    • PHP
  • phpメイラー 入力フォームの練習

    phpで入力フォームでのメールの送受信を行いたいのですが、そこで PHPMailer のメーラーをダウンロードして PHPMailer フォルダを submit.php のファイルの直下に置くらしいのですが、 PHPMailerを ホームページ入力フォームの中のフォルダ (入力ホーム練習)というフォルダを作ってそこに確認画面のphpファイルやHTMLファイルを保存しているのですが、 PHPMailerを submit.phpファイルの下に移動しようとドラッグしても勝手に PHPMailerのフォルダが一番上に来てしまいます。どうしたらよいでしょうか? このサイトを参考にしています。phpでのメールの送受信の方法 https://bluecode.io/basic/basic1/basic1-3/#phpmailer 送付画像は参考サイトに書いてある PHPMailer のフォルダの中の位置の画像です。 自分が作った入力ホームのフォルダの中は上記のURLのサイトに書いてあるphpのファイル名やhtmlファイル名は自分用に名前は変えてあります。 それは以下のものになります 以下 ホームページ入力フォームの中のフォルダフォルダ名(入力ホーム練習) PHPMailer←← ←← これが上に来てしまう・・・・・ confirmation.php contact.html submit.php 〇 〇 〇 ←← ←←ここに配置したい・・・・・ よろしくお願いいたします

    • 締切済み
    • PHP
  • PHPのメールフォームについて

    PHPの無料で使えるメールフォームを探しています^^ いろいろ探したんですが、見つかりません。 もし、ご存知でしたら、ヒントでもかまいません。教えてもられると、助かります。 ・メールアドレスを記入する際、再入力フォームに異なるメールアドレスを入れると、注意を出す。 ・必須項目設定が記入されていない場合、注意を出す。 この2つができる、PHPのメールフォームを探しています。 どうぞ、よろしくお願いします^ ^) kent-webさんのPost mailのPHP版のようなものがあると、助かります。 http://www.kent-web.com/data/postmail.html

    • ベストアンサー
    • PHP
  • php 練習 入力フォームのテスト用サーバー

    お問い合わせの入力フォームに入力された情報を受け取るコードを書いたのですが、メールの送受信が正常に行われるかテストしたいのですが、 いつでも自動返信できることと、自分が顧客から受け取ることができるかどうかを確認する為に、無料で使え、メールアドレスも自由に使えるサーバーなどはご存知でしょうか? まだ、テストの段階ですので、有料のサーバーを契約すらるともったいない気がして。

    • 締切済み
    • PHP
  • ホームページ 入力フォームに入力された情報受け取り

    ホームページの入力フォーム作成で入力フォーム→確認画面の表示するコードを書いているのですが、実際に書いたコードは一番下のURLにあります」 書き方は下のURL(1)のサイトに載っている書き方と全く同じコードを書いているのですが(少し変えてますが) (1)https://www.web-officer.com/php/how-to-make-inquiry-form.php contact.htmlファイル内のcheck _contactform l という名前の関数 は起動します。 しかし confirmation.phpという確認画面表示のphpファイルに以下のphpのコードを書くと 確認画面が表示された際に初めの入力フォームに入力した情報が確認画面に送られると思うのですが、確認画面に情報が表示されません。送付画像のように確認画面に入力した情報が表示されません。やり方が間違っているのでしょうか?それともコードの記載場所やコード自体が間違っているのでしょうか? 先に進まず途方に暮れています。 詳しいかた、回答よろしくお願いします。すごく困っています。 以下記載した情報受け取りコード(confirmation.phpに記載URL内の赤枠) <?php $name = $_POST['name'];    名前 $furigana = $_POST['furigana']; フリガナ $tel = $_POST['tel'];       電話番号 $address = $_POST['address']; メールアドレス $pay = $_POST['pay'];     クレジットカード ?> ベースファイル「contact.html」(入力フォーム、check_contactform関数のコード) https://drive.google.com/file/d/1IXzx3OV6Ue9u4RvSb1SxmAo2PncceB8Z/view?usp=sharing 「confirmation.php」(入力フォームの確認画面の表示) https://drive.google.com/file/d/1FDA_K4yHDERMMmWHssu-fh113BE7wwnH/view?usp=sharing

    • ベストアンサー
    • PHP
  • PHP 入力フォームで入力された情報が、折り返しメ

    PHP 入力フォームで入力された情報が、折り返しメールに表示されません。 折り返しメールに入力フォームに入力された内容の確認と「 下記の情報を受け取りました」など、折り返しメールに表示させたくて以下のコードに書き直したのですが、 受信はできたのですが、表示されたのは、コードに記載した情報「$mail->Body = "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△」の▼△だけでした。 入力された名前やアドレスを折り返しメールをお問い合わせメッセージと共に受け取りたいのですが、$mail->Bodyにいくつか情報を書いてみたのですがうまくいきません。 付属画像はコード変更前と後の画像になります。確認画面の表示の機能とセキュリティ対策に$_SESSIONと tokenが追加されてす。字数制限の為、PHPMailerを使うコードですが、インポートやcomserの記述 // SMTPサーバの設定などのポート番号やパスワード等の記述もカットしています。 どこが間違っているのでしょうか?詳しい方回答よろしくお願いいたします。 どこが間違っているのでしょうか?詳しい方回答よろしくお願いいたします。 <?php // 入力内容の取得・変数に格納 session_start(); if(isset($_POST['token'], $_SESSION['token']) && ($_POST['token'] === $_SESSION['token'])){ unset($_SESSION['token']); $name = $_SESSION['name']; $email = $_SESSION['email']; } // メール日本語対応 mb_language("japanese"); mb_internal_encoding("UTF-8"); // インスタンス生成 $mail = new PHPMailer(true); // 文字エンコードを指定 $mail->CharSet = 'utf-8'; try { // デバッグ設定 // $mail->SMTPDebug = 2; // デバッグ出力を有効化(レベルを指定) // $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str<br>";}; // SMTPサーバの設定 $mail->isSMTP(); // メール本体 $mail->setFrom('〇〇@', 'kkk'); // 送信元メールアドレスと名前 $mail->addAddress($email,$name); // 送信先メールアドレスと名前 $mail->Body = "お名前:".$name."\n"; $mail->Body = "下記の情報を受け取りました。\n内容を確認し、こちらから折り返し、ライン又はメールアドレスにてご案内させて頂きます。\n\n"; $mail->Body = "メールアドレス:".$email."\n"; $mail->Body = "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n"; $mail->Body = "【Web担当者の作り方】\n"; $mail->Body = "メール:〇〇@\n"; $mail->Body = "URL:https://www.web-officer.com/\n"; $mail->Body = "▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼\n"; // 送信 $mail->send(); echo '送信済み'; } catch (Exception $e) { echo "送信失敗: {$mail->ErrorInfo}"; } ?>

    • ベストアンサー
    • PHP
  • PHP入力フォームについて

    現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

    • 締切済み
    • PHP
  • PHPのメールフォーム(お問合せフォーム)について

    PHPのメールフォーム(お問合せフォーム)について 今、PHPでメールフォームを作っています。 (よくあるお問合せフォームです。) 書籍やウェブサイトを参考に 見よう見まねで、一通り作ってみました。 ただ、メールフォームを作るのは初めてなので 自分が作ったのものが公開できるレベルなのか (一般的なレベルに達しているかどうか)不安な感じです。 そこで、メールフォームについて詳しい方いらっしゃいましたら メールフォームを作る際に、押さえておくポイントについて 箇条書きで構いませんので、簡単に教えていただけないでしょうか。 例えばこんな感じで↓ ------------------- ・データの受け渡しはセッションを使う ・入力されたデータは必ずチェック ・Nullバイト攻撃対策をする ・セッションハイジャック対策する -------------------- ■私が作ってみたメールフォームの入力項目は下記のとおりです。 ------------------- <入力項目> 名前 電話番号 郵便番号 住所 メールアドレス メールアドレス(確認のため2回入力) お問合せ内容 ------------------- ■流れとしては下記のとおりです。 ------------------- 1)入力画面 ↓ 2)確認画面 ↓ 3)完了画面 ↓ 4-1)サイト運営者に入力内容が記載されたメールを送信。 4-2)ユーザーにサンクスメールを送信。 -------------------

    • ベストアンサー
    • PHP
  • 入力フォーム プログラミング

    HTML,PHP,の初心者です。入力フォームを作っています。入力フォームのカレンダー(日付を記入するところ)がなぜか文字を記入する事ができません。なぜでしょうか? "___年__月__日の部分なのですが、ここに数字を記入できません。どうしたらよいでしょうか? 先へ進めず困っています。 画像で表示されている赤い丸で囲んである部分です。 作ったコードはドライブにアップした下にある。2つのURLがコードになります。 (tell.html)(入力フォーム) https://drive.google.com/file/d/1l7XdLc0Ylm53zGAN6ISd3ag2TY9Wl47Y/view?usp=sharing (concon.php)(入力された情報を送るコード) https://drive.google.com/file/d/1wsp48Y-jG9b8f3Nc7JMMWmyyLiWm28TR/view?usp=sharing 回答よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう