ホームページ >バックエンド開発 >PHPチュートリアル >助けが必要: 問い合わせフォーム用に PHP メーラーを設定するのに苦労しています
開発コミュニティよ! ?
私はデジタル マーケティングの愛好家であり、PHP の初心者です。Web サイトの問題についてサポートが必要です。
私のウェブサイト
? WebFluence
具体的には、こちらのお問い合わせフォーム: Contact Form
問題
お問い合わせフォームには、includes/sendmail.php に構築済みの PHP ファイルが付属しています。残念ながら、このスクリプトでは古い mail() 関数が使用されており、Hostinger (私のホスティング プロバイダー) からは、この関数は安全ではなく推奨されないと言われました。彼らは私に、ビジネスホスティングプランにプレインストールされている PHPMailer を使用するようにアドバイスしました。
PHPMailer のセットアップに関する記事を読んだことがありますが、正直に言って、これまで PHP を使ったことがなかったので、すべてが少し圧倒されました。テンプレート作成者からの返答がなく、私はこれを理解するのに困っています。
詳細
ドメイン: GoDaddy に登録済み
ホスティング: Hostinger ビジネス プラン
現在のメール スクリプト: 古い mail() 関数スクリプトはここにあります:
<?php // フォームの値を読み取る $成功 = 偽; $successTxt = ""; $senderName = isset( $_POST['name'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['name'] ) : ""; $senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^.-_@a-zA-Z0-9]/", "", $_POST['email'] ) : ""; $subject = isset( $_POST['subject'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['subject'] ) : ""; $budget = isset( $_POST['budget'] ) ? preg_replace( "/^[A-Za-z0-9\-\.] $/", "", $_POST['budget'] ) : ""; $message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : ""; $txt = "クライアントの予算: " . $budget 。 「ん」。 $メッセージ 。 「ん」。 「よろしく、ん」 。 $senderName 。 " | " .$senderEmail; // すべての値が存在する場合、メールを送信します if ( $senderName && $senderEmail && $message ) { $mailTo = "dusan@webluence.digital"; // ホストメール (contact@yourdomain.com) などに変更します。 $headers = "差出人: " . $senderEmail; $success = mail( $mailTo, $subject, $txt, $headers ); $successTxt = "<p> <p>必要なもの<br> このスクリプトを安全な PHPMailer ベースのスクリプトに置き換えたいと考えています。 Hostinger には PHPMailer がプリインストールされており、より信頼性が高いと言われています。設定に関する記事を見つけましたが、PHP を初めて使用する私にとっては非常にわかりにくいです。</p> <p>これが私が今持っているものです:<br> </p><pre class="brush:php;toolbar:false"><?php 'vendor/autoload.php' が必要です。 PHPMailerPHPMailerPHPMailer を使用します。 $mail = 新しい PHPMailer; $mail->isSMTP(); $mail->SMTPDebug = 0; $mail->Host = 'smtp.hostinger.com'; $mail->ポート = 587; $mail->SMTPAuth = true; $mail->ユーザー名 = 'sales@webfluence.digital'; $mail->パスワード = 'c;Ge?H9unUs#:T0J'; $mail->setFrom('sales@webfluence.digital', 'ドゥサン ワラ'); $mail->addReplyTo('sales@webfluence.digital', 'ドゥサン ワラ'); // フォームの値を読み取り、インジェクション攻撃を防ぐためにサニタイズします。 $senderName = isset($_POST['name']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['name']) : ""; // 文字、数字、スペース、ドット、ハイフン、アポストロフィ以外の文字を削除します $senderEmail = isset($_POST['email']) ? preg_replace("/[^.-_@a-zA-Z0-9]/", "", $_POST['email']) : ""; // 文字、数字、ドット、ハイフン、アンダースコア、@ 以外の文字を削除します。 $subject = isset($_POST['subject']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['subject']) : ""; // 文字、数字、スペース、ドット、ハイフン、アポストロフィ以外の文字を削除します $budget = isset($_POST['budget']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['budget']) : ""; // 文字、数字、スペース、ドット、ハイフン、アポストロフィ以外の文字を削除します $message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; // ヘッダー挿入を防ぐために電子メール ヘッダーを削除します $mail->addAddress('sales@webfluence.digital', 'ドゥサン ワラ'); $mail->件名 = $subject; $mail->本文 = <<<EOD クライアントの予算: $budget $メッセージ よろしく、 $送信者名 | $senderEmail EOD; if (!$mail->send()) { echo 'メーラー エラー: ' 。 $mail->エラー情報; } それ以外 { エコー "<p> <p>質問<br> 可能な限り簡単な方法でこのスクリプトを PHPMailer に置き換えるにはどうすればよいですか?<br> 何をする必要があるかを詳しく説明したステップバイステップのガイドはありますか?<br> スクリプトで Hostinger の SMTP 設定を構成するにはどうすればよいですか?<br> ご協力をよろしくお願いいたします。 ?</p> <p>追加リソース<br> 私が参照していた記事は次のとおりです: PHPMailer を使用して安全な電子メール送信を行う方法</p> <p>ご指導ありがとうございます。 ?</p>
以上が助けが必要: 問い合わせフォーム用に PHP メーラーを設定するのに苦労していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。