Rumah >pembangunan bahagian belakang >tutorial php >Bantuan Diperlukan: Berjuang untuk Menyediakan PHP Mailer untuk Borang Hubungan Saya
Hei Komuniti Dev! ?
Saya seorang peminat pemasaran digital dan pemula dalam PHP, dan saya memerlukan bantuan untuk masalah di tapak web saya.
Tapak Web Saya
? WebFluence
Khususnya, borang hubungan di sini: Borang Hubungan
Isunya
Borang hubungan disertakan dengan fail PHP prabina yang terletak di includes/sendmail.php. Malangnya, skrip menggunakan fungsi mel() yang sudah lapuk, yang Hostinger (penyedia pengehosan saya) memberitahu saya adalah tidak selamat dan tidak disyorkan. Mereka menasihati saya untuk menggunakan PHPMailer, yang telah diprapasang pada rancangan pengehosan perniagaan mereka.
Saya telah membaca artikel tentang menyediakan PHPMailer, tetapi secara jujur, semuanya agak menggembirakan bagi saya kerana saya tidak pernah bekerja dengan PHP sebelum ini. Pengarang templat belum membalas, dan saya buntu cuba memikirkan perkara ini.
Butiran
Domain: Berdaftar dengan GoDaddy
Pengehosan: Rancangan Perniagaan Hostinger
Skrip Mel Semasa: Skrip fungsi mail() lapuk ada di sini:
<?php // Baca nilai borang $kejayaan = palsu; $successTxt = ""; $senderName = isset( $_POST['name'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['nama'] ) : ""; $senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^.-_@a-zA-Z0-9]/", "", $_POST['email'] ) : ""; $subjek = isset( $_POST['subjek'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['subjek'] ) : ""; $bajet = isset( $_POST['belanjawan'] ) ? preg_replace( "/^[A-Za-z0-9\-\.] $/", "", $_POST['belanjawan'] ) : ""; $message = isset( $_POST['message'] ) ? preg_replace( "/(Dari:|Kepada:|BCC:|CC:|Subjek:|Jenis-Kandungan:)/", "", $_POST['message'] ) : ""; $txt = "Belanjawan pelanggan: " . $bajet . "nn". $mesej . "nn". "Salam,nn" . $senderName . " | " .$senderEmail; // Jika semua nilai wujud, hantar e-mel jika ( $senderName && $senderEmail && $message ) { $mailTo = "dusan@webluence.digital"; // tukar kepada mel hos anda contohnya (contact@yourdomain.com). $headers = "Daripada: " . $senderEmail; $success = mail( $mailTo, $subject, $txt, $headers ); $successTxt = "<p> <p>Apa yang Saya Perlukan<br> Saya mahu menggantikan skrip ini dengan skrip berasaskan PHPMailer yang selamat. Hostinger telah memasang PHPMailer, dan saya telah diberitahu ia lebih dipercayai. Saya menjumpai artikel tentang menyediakannya, tetapi ia terlalu mengelirukan bagi saya sebagai seseorang yang baru mengenali PHP.</p> <p>Inilah yang saya ada sekarang:<br> </p><pre class="brush:php;toolbar:false"><?php memerlukan 'vendor/autoload.php'; gunakan PHPMailerPHPMailerPHPMailer; $mail = PHPMailer baharu; $mail->isSMTP(); $mail->SMTPDebug = 0; $mail->Host = 'smtp.hostinger.com'; $mail->Port = 587; $mail->SMTPauth = benar; $mail->Nama pengguna = 'sales@webfluence.digital'; $mail->Kata Laluan = 'c;Ge?H9unUs#:T0J'; $mail->setFrom('sales@webfluence.digital', 'Dusan Walla'); $mail->addReplyTo('sales@webfluence.digital', 'Dusan Walla'); // Baca nilai borang dan bersihkannya untuk mengelakkan serangan suntikan $senderName = isset($_POST['name']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['nama']) : ""; // Alih keluar sebarang aksara yang bukan huruf, nombor, ruang, titik, sempang atau apostrof $senderEmail = isset($_POST['email']) ? preg_replace("/[^.-_@a-zA-Z0-9]/", "", $_POST['email']) : ""; // Alih keluar sebarang aksara yang bukan huruf, nombor, titik, sempang, garis bawah atau @ $subjek = isset($_POST['subjek']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['subjek']) : ""; // Alih keluar sebarang aksara yang bukan huruf, nombor, ruang, titik, sempang atau apostrof $bajet = isset($_POST['belanjawan']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['belanjawan']) : ""; // Alih keluar sebarang aksara yang bukan huruf, nombor, ruang, titik, sempang atau apostrof $message = isset($_POST['message']) ? preg_replace("/(Dari:|Kepada:|BCC:|CC:|Subjek:|Jenis-Kandungan:)/", "", $_POST['mesej']) : ""; // Alih keluar sebarang pengepala e-mel untuk mengelakkan suntikan pengepala $mail->addAddress('sales@webfluence.digital', 'Dusan Walla'); $mail->Subjek = $subjek; $mail->Badan = <<<EOD Belanjawan pelanggan: $budget $mesej salam, $senderName | $senderEmel EOD; jika (!$mail->hantar()) { echo 'Ralat Pengirim:' . $mail->ErrorInfo; } lain { echo "<p> <p>Soalan<br> Bagaimanakah cara saya menggantikan skrip ini dengan PHPMailer dengan cara yang paling mudah?<br> Adakah terdapat panduan langkah demi langkah yang memecahkan perkara yang perlu saya lakukan?<br> Bagaimanakah cara saya mengkonfigurasi tetapan SMTP Hostinger dalam skrip?<br> Sebarang bantuan akan sangat dihargai! ?</p> <p>Sumber Tambahan<br> Inilah artikel yang saya rujuk: Cara Menggunakan PHPMailer untuk Penghantaran E-mel Selamat</p> <p>Terima kasih terlebih dahulu atas bimbingan anda! ?</p>
Atas ialah kandungan terperinci Bantuan Diperlukan: Berjuang untuk Menyediakan PHP Mailer untuk Borang Hubungan Saya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!