PHP

PHP E-Mails versenden mit mail()

2024-02-14 | credits: stock.adobe CraftyImago

Thema in Kurzform

Mit PHP ist es super einfach, E-Mails aus dem Server-Script an einen beliebigen Empfänger zu senden. Alles, was du dazu brauchst, steckt in der schlanken Funktion mail(). 

mail() einsetzen

Der Code für das Versenden einer E-Mail mit mail() ist sehr einfach. Hier siehst du ein Beispiel: 

<?php
// Variablen festlegen
$msg = "Hallo, das ist eine Test-Mail.";
$empfaenger = "empfaenger@domain.de";
$betreff = "Betreff der Mail";

// Verwende wordwrap() bei mehr als 100 Zeichen je Zeile
$msg = wordwrap($msg,100);

// E-Mail versenden
$sendmail = mail($empfaenger,$betreff,$msg);
?>

Wir speichern zuerst die wesentlichen Bestandteile der E-Mail in den Variablen $msg, $empfaenger und $betreff. Die Textnachricht in $msg soll im Textfluss außerdem noch eine maximale Länge von 100 Zeichen je Zeile haben: Dazu nutzen wir die Funktion wordwrap()

Die Funktion mail() hat dann in der "Minimal-Version" drei Parameter. Diese werden mit unseren drei Variablen besetzt und schon sind wir fertig 😀

Beachte: Ein lokaler Server kann normlerweise keine Mails versenden. Teste das Programm daher am besten auf einem echten Server. 

Programm erweitern

Wir können unser Programm sinnvoll mit folgenden Möglichkeiten erweitern: 

Rückgabewert von mail()

Die Funktion mail() liefert einen booleschen Rückgabewert: true, wenn die E-Mail erfolgreich für den Versand akzeptiert wurde, ansonsten false

Den Rückgabewert können wir sinnvoll einsetzen, um dem Benutzer ein Feedback zu geben, ob mit dem Mail-Versand soweit alles geklappt hat. 

Das erweiterte Mail-Programm sieht dann so aus: 

<?php
// Variablen festlegen
$msg = "Hallo, das ist eine Test-Mail.";
$empfaenger = "empfaenger@domain.de";
$betreff = "Betreff der Mail";

// Verwende wordwrap() bei mehr als 100 Zeichen je Zeile
$msg = wordwrap($msg,100);

// E-Mail versenden
$sendmail = mail($empfaenger,$betreff,$msg);

// Feedback an Benutzer
if($sendmail){
    echo "Erfolg! E-Mail wurde für den Versand akzeptiert.";
}
else{
    echo "Fehler! E-Mail nicht für den Versand akzeptiert.";
}
?>

Zusätzliche Header

Um der versendeten E-Mail Informationen wie From, Cc oder Bcc mitzugeben, können wir die optionalen zusätzlichen Header angeben. 

Diese Werte werden in einem Key-Value-Array gespeichert:

$headers = [
    'From' => 'Falconbyte <info@falconbyte.net>',
    'Cc' => 'Cc <kopie@domain.de>',
    'Bcc' => 'Bcc <blindKopie@domain.de>'
];

Das Array setzen wir als optionalen Parameter in die mail()-Funktion ein. 

Unser fertiges Mail-Programm sieht komplett nun so aus: 

<?php

$msg = "Hallo, das ist eine Test-Mail.";
$empfaenger = "mail@stefanheller.net";
$betreff = "Betreff der Mail";

// use wordwrap() if lines are longer than 100 characters
$msg = wordwrap($msg,100);

// Zusätzliche Header
$headers = [
    'From' => 'Falconbyte <info@falconbyte.net>',
    'Cc' => 'Cc <kopie@domain.de>',
    'Bcc' => 'Bcc <blindKopie@domain.de>'
];

// send email mit zusätzlichem Header-Parameter
$sendmail = mail($empfaenger,$betreff,$msg, $headers);

// Feedback an den Benutzer
if($sendmail){
    echo "Erfolg! E-Mail wurde für den Versand akzeptiert.";
}
else{
    echo "Fehler! E-Mail nicht für den Versand akzeptiert.";
}
?>
Werbung

Java lernen

Werde zum Java Profi!

PHP Lernen

Lerne serverbasierte Programmierung

JavaScript lernen

Skille dein Webcoding

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen