0 Pluspunkte 0 Minuspunkte

Ich habe diesen Code zum versenden einer Email mit der eingebauten mail() Funktion.

$to = 'empfaenger@example.com';
$subject = 'Test E-Mail mit Anhang';
$message = '<html><body><p>Dies ist eine <strong>Test</strong>-E-Mail mit einem Anhang.</p></body></html>';
$headers = "From: absender@example.com\r\n";
$headers .= "Reply-To: absender@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"boundary_string\"\r\n";

$email_body = "--boundary_string\r\n";
$email_body .= "Content-Type: text/html; charset=\"UTF-8\"\r\n";
$email_body .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$email_body .= $message . "\r\n";

$mail_sent = mail($to, $subject, $email_body, $headers);

if ($mail_sent) {
    echo "Die E-Mail wurde erfolgreich gesendet.";
} else {
    echo "Fehler beim Senden der E-Mail.";
}

Wie kann ich einen Dateianhang mit senden?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Du kannst die Datei mit base64 kodieren und als Attachment anhängen.

$file_path = 'path/to/file.pdf';
$filename = 'file.pdf';
$file_contents = file_get_contents($file_path);
$encoded_file_contents = chunk_split(base64_encode($file_contents));
$email_body .= "--boundary_string\r\n";
$email_body .= "Content-Type: application/pdf; name=\"$filename\"\r\n";
$email_body .= "Content-Transfer-Encoding: base64\r\n";
$email_body .= "Content-Disposition: attachment; filename=\"$filename\"\r\n\r\n";
$email_body .= $encoded_file_contents . "\r\n";
$email_body .= "--boundary_string--";
von