So senden Sie E-Mails mit der PHP-Funktion mail()

Was ist PHP-Mail?

PHP-Mail ist die integrierte PHP-Funktion, die zum Senden von E-Mails aus PHP-Skripten verwendet wird.

Die Mail-Funktion akzeptiert die folgenden Parameter:

  • E-Mail-Adresse
  • Thema
  • Nachricht
  • CC- oder BC-E-Mail-Adressen

  • Dies ist eine kostengünstige Möglichkeit, Benutzer über wichtige Ereignisse zu benachrichtigen.
  • Ermöglichen Sie Benutzern die Kontaktaufnahme mit Ihnen per E-Mail, indem Sie auf der Website ein Kontaktformular bereitstellen, das den bereitgestellten Inhalt per E-Mail sendet.
  • Entwickler können damit Systemfehler per E-Mail erhalten
  • Sie können es verwenden, um Ihren Newsletter-Abonnenten E-Mails zu senden.
  • Sie können damit Links zum Zurücksetzen des Passworts an Benutzer senden, die ihr Passwort vergessen haben
  • Sie können damit Aktivierungs-/Bestätigungslinks per E-Mail versenden. Dies ist nützlich, wenn Sie Benutzer registrieren und ihre E-Mail-Adressen überprüfen.

Warum/wann man Mail-PHP verwenden sollte

Senden von E-Mails mit PHP

Die PHP-Mail-Funktion hat die folgende grundlegende Syntax

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

HIER,

  • „$to_email_address“ ist die E-Mail-Adresse des Mailempfängers
  • „$subject“ ist der Betreff der E-Mail
  • „$message“ ist die zu sendende Nachricht.
  • „[$headers]“ ist optional und kann zum Einfügen von Informationen wie CC, BCC verwendet werden

    • CC ist die Abkürzung für Carbon Copy. Es wird verwendet, wenn Sie einer interessierten Person eine Kopie zusenden möchten. Eine Beschwerde-E-Mail an ein Unternehmen kann beispielsweise auch als CC an die Beschwerdestelle gesendet werden.
    • BCC ist die Abkürzung für Blind Carbon Copy. Es ist ähnlich wie CC. Die im BCC-Abschnitt enthaltenen E-Mail-Adressen werden den anderen Empfängern nicht angezeigt.

Einfacher Mail Transmission Protokoll (SMTP)

PHP-Mailer verwendet Simple Mail Transmission Protokoll (SMTP) zum Senden von E-Mails.

Auf einem gehosteten Server wären die SMTP-Einstellungen bereits festgelegt.

Die SMTP-Mail-Einstellungen können über die Datei „php.ini“ im PHP-Installationsordner konfiguriert werden.

Konfigurieren der SMTP-Einstellungen auf Ihrem lokalen Host. Angenommen, Sie verwenden xampp unter Windows, suchen Sie die „php.ini“ im Verzeichnis „C:\xampp\php“.

  • Öffnen Sie es mit Notepad oder einem beliebigen Texteditor. In diesem Beispiel verwenden wir den Notizblock. Klicken Sie auf das Bearbeitungsmenü

Einfacher Mail Transmission Protokoll

  • Klicken Sie auf das Menü „Suchen…“.

Einfacher Mail Transmission Protokoll

  • Das Suchdialogmenü wird angezeigt

Einfacher Mail Transmission Protokoll

  • Klicken Sie auf die Schaltfläche „Weitersuchen“.

Einfacher Mail Transmission Protokoll

  • Suchen Sie die Einträge

    • [Mail-Funktion]
    • ; XAMPP: Entfernen Sie das Semikolon nicht, wenn Sie mit einem SMTP-Server arbeiten möchten wie Mercury
    • ; SMTP = lokaler Host
    • ; smtp_port = 25
    • Entfernen Sie die Semikolons vor SMTP und smtp_port und stellen Sie SMTP auf Ihren ein SMTP-Server und den Port zu Ihrem SMTP-Port. Ihre Einstellungen sollten wie folgt aussehen

      • SMTP = smtp.example.com
      • smtp_port = 25
      • Hinweis Die SMTP-Einstellungen erhalten Sie von Ihrem Webhosting-Anbieter.
      • Wenn der Server eine Authentifizierung erfordert, fügen Sie die folgenden Zeilen hinzu.

        • auth_username = example_username@example.com
        • auth_password = example_password
        • Speichern Sie die neuen Änderungen.
        • Wiederaufnahme Apache Server.

PHP Mail Beispiel

Schauen wir uns nun ein Beispiel an, das eine einfache E-Mail versendet.

<?php     
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
$headers = 'From: noreply @ company . com';
mail($to_email,$subject,$message,$headers);
?>

Ausgang:

Einfacher Mail Transmission Protokoll

Hinweis: Das obige Beispiel benötigt nur die 4 obligatorischen Parameter.

Sie sollten die oben genannte fiktive E-Mail-Adresse durch eine echte E-Mail-Adresse ersetzen.

Bereinigen von E-Mail-Benutzereingaben

Das obige Beispiel verwendet der Einfachheit halber fest codierte Werte im Quellcode für die E-Mail-Adresse und andere Details.

Nehmen wir an, Sie müssen ein Kontaktformular erstellen, in das Benutzer die Details eintragen und es dann absenden können.

  • Benutzer können versehentlich oder absichtlich Code in die Header einfügen, was zum Versenden von Spam-Mails führen kann
  • Um Ihr System vor solchen Angriffen zu schützen, können Sie eine benutzerdefinierte Funktion erstellen, die die Werte vor dem Senden der E-Mail bereinigt und validiert.

Erstellen wir eine benutzerdefinierte Funktion, die die E-Mail-Adresse mit der integrierten Funktion filter_var validiert und bereinigt.

Filter_var-Funktion Die filter_var-Funktion wird verwendet, um die Benutzereingabedaten zu bereinigen und zu validieren.

Es hat die folgende grundlegende Syntax.

<?php
filter_var($field, SANITIZATION TYPE);
?>

HIER,

  • „filter_var(…)“ ist die Validierungs- und Bereinigungsfunktion
  • „$field“ ist der Wert des zu filternden Feldes.
  • „TYP DER DESINFEKTION“ ist die Art der Desinfektion, die auf dem Feld durchgeführt werden soll, z.

    • FILTER_VALIDATE_EMAIL – es gibt „true“ für gültige E-Mail-Adressen und „false“ für ungültige E-Mail-Adressen zurück.
    • FILTER_SANITIZE_EMAIL – entfernt ungültige Zeichen aus E-Mail-Adressen. info\@domain.(com) gibt info@domain.com zurück.
    • FILTER_SANITIZE_URL – Es entfernt illegale Zeichen aus URLs. http://www.example@.comé gibt >http://www.example@.com zurück
    • FILTER_SANITIZE_STRING – Es entfernt Tags aus String-Werten. „bin mutig“ wird zu „bin mutig“.

Der folgende Code implementiert eine benutzerdefinierte Funktion zum Senden sicherer E-Mails.

<?php 
function sanitize_my_email($field) {
    $field = filter_var($field, FILTER_SANITIZE_EMAIL);
    if (filter_var($field, FILTER_VALIDATE_EMAIL)) {
        return true;
    } else {
        return false;
    }
}
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail ';
$headers = 'From: noreply @ company. com';
//check if the email address is invalid $secure_check
$secure_check = sanitize_my_email($to_email);
if ($secure_check == false) {
    echo "Invalid input";
} else { //send email 
    mail($to_email, $subject, $message, $headers);
    echo "This email is sent using PHP Mail";
}
?>

Ausgang:

Bereinigen von E-Mail-Benutzereingaben

und geschützt Mail

E-Mails können während der Übertragung von unbeabsichtigten Empfängern abgefangen werden.

Dadurch kann der Inhalt der E-Mail unbeabsichtigten Empfängern zugänglich gemacht werden.

Secure Mail löst dieses Problem, indem E-Mails über Hypertext Transfer Protocol Secure (HTTPS) übertragen werden.

HTTPS verschlüsselt Nachrichten vor dem Senden.

Zusammenfassung

  • Das PHP Die integrierte Funktion mail() wird zum Senden von E-Mails aus PHP-Skripten verwendet.
  • Validierungs- und Bereinigungsprüfungen der Daten sind für den Versand sicherer E-Mails unerlässlich
  • Die in PHP integrierte Funktion filter_var() bietet eine benutzerfreundliche und effiziente Möglichkeit zur Datenbereinigung und -validierung