Rumah > pembangunan bahagian belakang > tutorial php > Bantuan Diperlukan: Berjuang untuk Menyediakan PHP Mailer untuk Borang Hubungan Saya

Bantuan Diperlukan: Berjuang untuk Menyediakan PHP Mailer untuk Borang Hubungan Saya

Mary-Kate Olsen
Lepaskan: 2024-12-07 11:31:13
asal
199 orang telah melayarinya

Help Needed: Struggling to Set Up PHP Mailer for My Contact Form

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>


          

            
        
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan