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ü
- Klicken Sie auf das Menü „Suchen…“.
- Das Suchdialogmenü wird angezeigt
- Klicken Sie auf die Schaltfläche „Weitersuchen“.
- 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:
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:
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