In diesen PHP Tutorial erkläre ich ihnen, wie sie eine E-Mail mit einem Dateianhang versenden. Dieses Tutorial habe ich geschrieben, da eine Frage dazu im Forum vom SELFPHP beantworten möchte. Im eigentlichen Sinne ist es Recht einfach eine E-Mail mit Dateianhang zu versenden. Man muss hier bei ein paar Regeln beachten. Nachfolgend finden sie ein Code Beispiel, wie man eine E-Mail mit einen Dateianhang über ein PHP-Script versendet.
Hierbei muss die Datei im gleichen Ordner vorhanden sein, wo das Script liegt. Nachdem man das Script über einen Browser aufruft, wird automatisch die Datei eingelesen und per E-Mail an den vor konfigurierten Daten versendet. Wenn die Datei nicht existiert wird automatisch das Script abgebrochen.
Das Code Beispiel:
<?php
/*
* Created on 07.12.2009 by Nico Schubert
*/
/**
* E-Mail Adresse vom Empfänger
*/
$empfaenger = "info@php-space.info";
/**
* Betreff der Email
*/
$betreff = "E-Mail mit Anhang";
/**
* Name des Absenders
*/
$absender_name = "Php-Space.info";
/**
* E-Mail Adresse vom Absender
*/
$absender_email = "info@php-space.info";
/**
* Dateiname, die im Anhang versendet werden
soll
*/
$dateiname = "bild.JPG";
/**
* Name der Datei, die im Anhang versendet wird
*/
$dateiname_mail = "anhang.JPG";
$boundary = md5(uniqid(time()));
if (@file_exists($dateiname) == false) {
echo 'Die Datei: '.$dateiname.' gibt es
nicht auf den Server!';
} else {
/**
* Dateiinhalt von Datei auslesen
*/
$dateiinhalt = fread(fopen($dateiname,
"r"), filesize($dateiname));
/**
* Absender Name und E-Mail Adresse
*/
$mail_header = "From: ".$absender_name."
<".$absender_email.">n";
$mail_header .= "MIME-Version: 1.0n";
$mail_header .= "Content-Type:
multipart/mixed;
boundary=".$boundary."nn";
$mail_header .= "This is a multi-part
message in MIME formatn";
$mail_header .= "--".$boundary."n";
$mail_header .= "Content-Type:
text/plainn";
$mail_header .=
"Content-Transfer-Encoding: 8bitnn";
/**
* Text der Email
*/
$mail_header .= "Das ist eine E-Mail mit
Anhang!";
/**
* Dateianhang einfügen
*/
$mail_header .= "n--".$boundary."n";
$mail_header .= "Content-Type: image/jpg;
name=".$dateiname_mail."n";
$mail_header .=
"Content-Transfer-Encoding: base64n";
$mail_header .= "Content-Disposition:
attachment;
filename=".$dateiname_mail."nn";
$mail_header .=
chunk_split(base64_encode($dateiinhalt));
$mail_header .= "n--".$boundary."--";
/**
* Email versenden
*/
@mail($empfaenger, $betreff, "",
$mail_header) or die('Die Email
konnte nicht versendet werden');
}
?>
So das soll es erst mal gewesen sein ich hoffe das dieses Beispiel verständlich genug ist. Eine kleine Erklärung wie man überhaupt eine E-Mail in PHP versendet, wird ihnen diesen Artikel erklärt.