Heim >Backend-Entwicklung >PHP-Tutorial >Benötigte Hilfe: Ich habe Schwierigkeiten, den PHP-Mailer für mein Kontaktformular einzurichten

Benötigte Hilfe: Ich habe Schwierigkeiten, den PHP-Mailer für mein Kontaktformular einzurichten

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-07 11:31:13222Durchsuche

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

Hey Dev-Community! ?

Ich bin ein Enthusiast für digitales Marketing und Anfänger in PHP, und ich brauche Hilfe bei einem Problem auf meiner Website.

Meine Website
? WebFluence
Konkret das Kontaktformular hier: Kontaktformular

Das Problem
Das Kontaktformular wurde mit einer vorgefertigten PHP-Datei geliefert, die sich in Includes/sendmail.php befindet. Leider verwendet das Skript die veraltete Funktion mail(), die laut Hostinger (meinem Hosting-Anbieter) unsicher und nicht zu empfehlen ist. Sie haben mir geraten, PHPMailer zu verwenden, der in ihren Business-Hosting-Plänen vorinstalliert ist.

Ich habe Artikel über die Einrichtung von PHPMailer gelesen, aber ehrlich gesagt ist das alles etwas überwältigend für mich, da ich noch nie zuvor mit PHP gearbeitet habe. Der Autor der Vorlage hat nicht geantwortet und ich versuche nicht, das herauszufinden.

Details
Domain: Registriert bei GoDaddy
Hosting: Hostinger Businessplan
Aktuelles Mail-Skript: Das veraltete Mail()-Funktionsskript finden Sie hier:

<?php

// Formularwerte lesen
$success = false;
$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 = "Kundenbudget: " . $budget . „nn“ . $message . „nn“ . „Grüße,nn“ . $senderName . " | " .$senderEmail;

// Wenn alle Werte vorhanden sind, senden Sie die E-Mail
if ( $senderName && $senderEmail && $message ) {
  $mailTo = "dusan@webluence.digital"; // Ändern Sie es beispielsweise in Ihre Host-Mail (contact@yourdomain.com).
  $headers = "Von: " . $senderEmail;
  $success = mail( $mailTo, $subject, $txt, $headers );
  $successTxt = "<p>



<p>Was ich brauche<br>
Ich möchte dieses Skript durch ein sicheres PHPMailer-basiertes Skript ersetzen. Hostinger hat PHPMailer vorinstalliert und mir wurde gesagt, dass es zuverlässiger sei. Ich habe einen Artikel über die Einrichtung gefunden, aber er ist für mich als PHP-Neuling zu verwirrend.</p>

<p>Das habe ich gerade:<br>
</p><pre class="brush:php;toolbar:false"><?php
require 'vendor/autoload.php';

verwenden Sie PHPMailerPHPMailerPHPMailer;

$mail = neuer PHPMailer;

$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Benutzername = 'sales@webfluence.digital';
$mail->Password = 'c;Ge?H9unUs#:T0J';
$mail->setFrom('sales@webfluence.digital', 'Dusan Walla');
$mail->addReplyTo('sales@webfluence.digital', 'Dusan Walla');

// Formularwerte lesen und bereinigen, um Injektionsangriffe zu verhindern
$senderName = isset($_POST['name']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['name']) : ""; // Alle Zeichen entfernen, die keine Buchstaben, Zahlen, Leerzeichen, Punkte, Bindestriche oder Apostrophe sind
$senderEmail = isset($_POST['email']) ? preg_replace("/[^.-_@a-zA-Z0-9]/", "", $_POST['email']) : ""; // Alle Zeichen entfernen, die keine Buchstaben, Zahlen, Punkte, Bindestriche, Unterstriche oder @ sind
$subject = isset($_POST['subject']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['subject']) : ""; // Alle Zeichen entfernen, die keine Buchstaben, Zahlen, Leerzeichen, Punkte, Bindestriche oder Apostrophe sind
$budget = isset($_POST['budget']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['budget']) : ""; // Alle Zeichen entfernen, die keine Buchstaben, Zahlen, Leerzeichen, Punkte, Bindestriche oder Apostrophe sind
$message = isset($_POST['message']) ? preg_replace("/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message']) : ""; // Entfernen Sie alle E-Mail-Header, um die Header-Injektion zu verhindern

$mail->addAddress('sales@webfluence.digital', 'Dusan Walla');
$mail->Subject = $subject;
$mail->Body = <<<EOD
Kundenbudget: $budget

$Nachricht

Grüße,

$senderName | $senderEmail
EOD;

if (!$mail->send()) {
    echo 'Mailer-Fehler: ' . $mail->ErrorInfo;
} anders {
    echo "<p>



<p>Fragen<br>
Wie ersetze ich dieses Skript auf einfachste Weise durch PHPMailer?<br>
Gibt es eine Schritt-für-Schritt-Anleitung, die erklärt, was ich tun muss?<br>
Wie konfiguriere ich die SMTP-Einstellungen von Hostinger im Skript?<br>
Jede Hilfe wäre sehr dankbar! ?</p>

<p>Zusätzliche Ressourcen<br>
Hier ist der Artikel, auf den ich mich bezog: So verwenden Sie PHPMailer für den sicheren E-Mail-Versand</p>

<p>Vielen Dank im Voraus für Ihre Anleitung! ?</p>


          

            
        

Das obige ist der detaillierte Inhalt vonBenötigte Hilfe: Ich habe Schwierigkeiten, den PHP-Mailer für mein Kontaktformular einzurichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn