Diese Funktion sendet eine Email mit einer Datei als Anhang.
Wenn man Emails versendet, dann möchte man ja oft eine Datei als Anhang mitversenden. Dies können z.B. Bilder/Logos sein, Archive oder einfach die Email als HTML-Datei, um Darstellungsprobleme zu verhindern.
Mit dieser Funktion kann man beliebig viele Dateien als Anhang versenden. Diese Dateien können z.B. hochgeladen werden, oder bereits auf dem Server gespeichert sein.
$anhang hat dabei folgende Struktur: $anhang["name"] = Name der Datei $anhang["size"] = Größe der Datei in Byte $anhang["type"] = MIME-Dateityp $anhang["data"] = Dateiinhalt
Für mehrere Dateien einfach $anhang als mehrdimensionales Array übergeben.
Z.B. so:
$anhang[] = array("name"=>$name1, "size"=>$size1, "type"=>$type1, "data"=>$data1);
$anhang[] = array("name"=>$name2, "size"=>$size2, "type"=>$type2, "data"=>$data2);
Also die Funktion könnte man beim Datei-Upload z.B. so benutzt:
hier (wie auch bei der erweiterten Blätterfunktion) war ich sehr erliechter, habe aber auch noch eine if Abfrage an der Stelle hinzugefügt, wo die Datein in den Anhang geschrieben werden. Die if Abfrage lautete einfach:
Code
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<?
// [...]
if ($anhang == "" OR empty($anhang)) //die zwei abfragen sind doch nich das gleiche oder?
{
// hinzufügen des Anhangs
}
else {} // Nur Formhalber dabei
//[...]
?>
das Script ist ja richtig schön und funktioniert auch, doch leider bekomm ich in einer Text-Mail damit keine Zeilenumbrüche hin.
Normalerweise wird ja der Zeilenumbruch bei der der Standardfunktion mail(); im Text einfach mit \n definiert, doch in diesem Script haut das überhaupt nicht hin.
Gibt es hier nen kleinen Trick den ich kennen sollte..?
ich habe ein ganz anderes Problem mit diesem Script. Anscheinend liegt hier irgendwo ein Fehler im Detail.
1.) Sende ich mit diesem Script - eine CSV Datei an eine Mail Adresse auf .gmx dann wird die Datei in der Übersicht mit einer Klammer angezeigt öffne ich die Mail dann ist kein Anhang mehr vorhanden und im Text stehen teile des Headers. (siehe Bild in der Anlage)
2.) Schaue ich mir die Mail im Internet mit dem Webmail Programm Horde an (gesendet an eine andere Mail Adresse) dann sieht die Mail korrekt aus.
3.) Hole ich die Mail von 1.) oder 2.) mit Outlook Express / Outlook 2003 ab sieht die Mail aus wie unter 1.) beschrieben aus.
4.) Hole ich die Mail mit Thunderbird ab, dann soll Sie wohl in Ordnung sein.
Kann mir hier irgendjemand einen Tipp geben.... Ich bin ratlos. Ich würde sagen das hier evtl. die Erkennung des Trenners der einzelnen Elemente nicht klappt ??
So, das ist ja jetzt alles schön und gut, aber verzeih mir, ich raffe es nicht ganz.
Ich habe mal versucht den Code zu übernehmen und bei meinem Problem zu benutzen, hat aber nicht geklappt.
echo "<div id=\"content\">";
echo "Hallo ehemalige Klassenmitglieder der 7c Jahrgang 07/08.<br>";
echo "Wir haben ein erfolgreiches Jahr hinter uns gebracht und viele schöne Erinnerungen mitgenommen, nicht zuletzt dank unserer tollen Lehrer, die wir dieses Schuljahr über hatten.<br>";
echo "Leider musste uns zwei Mitglieder der Klasse verabschieden, ich wünsche ihnen an dieser Stelle noch einmal viel Glück auf ihrer neuen Schule.<br>";
echo "Das größste unserer Projekte dieses Jahr war wahrscheinlich das Bemalen der Wand.<br>";
echo "Da bei diesem Werk viele Mitglieder der Klasse mitgewirkt haben, wäre es eine Verschwendung, sollte dieses Bild in der Verseknung verschwinden.<br>";
echo "Deswegen hat unsere Lehrerin Frau Rast-Erler (an dieser Stelle noch einmal einen außerordentlichen Dank) letztes Jahr die Gunst der Stunde genutzt, um ein paar Fotos festzuhalten.<br>";
echo "Auf diesen befinden sich sämtliche sehenswerte Details, zusammen mit einigen der Maler.<br>";
echo "Wer diese Bilder möchte, der sollte im nebenstehenden Formular alle geforderten Angaben eingeben und dann auf Absenden klicken.<br>";
echo "Die Bilder werden nun automatisch per E-Mail verschickt.";
echo "</div>";
echo "<div id=\"content\">";
echo "Herzlich Willkommen <b>".$name." ".$coname."</b>. Die Bilder, die sie haben wollen, werden ihnen automatisch geschickt.<br>";
echo "Sollten sie nicht angekommen sein, so schreiben sie bitte an <a href=\"mailto:alexander0206@gmx.de\">mich</a>.";
echo "Eine weitere Lösung ist es, <a href=\"bilderversand.php?page=alternate\">hier</a> zu klicken.<br>";
echo "</div>";
Also ich weiß jetzt nicht, ob es so auch klappt, wäre nett, wenn mir das jemand sagen könnte.
Wie kann ich jetzt dein Beispiel so umformen, dass meins läuft??
Hi. ich habe das selbe problem (oder sogar noch krasser) wie mein Vorredner. Habe jetzt alle möglichen Variationen mit diesem Script durchgeführt, aber es passiert immer das gleiche:
1.: Es ist kein Anhang an der Mail
2.: dafür steht sowohl ein Teil des Headers im Text
3.: Als auch der Anhang in verschlüsselter Form selbst (mit Bildern oder sonstigem)isses übrigens das gleiche).
Was mach ich verkehrt?
MfG Marcus Dietze
Delivered-To: irgendwas@irgendwer.de
Received: by 10.52.99.202 with SMTP id es10cs43769vdb;
Mon, 28 Mar 2011 04:47:26 -0700 (PDT)
Received: by 10.204.187.194 with SMTP id cx2mr3269215bkb.167.1301312845321;
Mon, 28 Mar 2011 04:47:25 -0700 (PDT)
Return-Path: <postmaster@localhost>
Received: from irgendwer.de (ds83-169-60-65.dedicated.hosteurope.de [83.169.60.65])
by mx.google.com with ESMTPS id 10si3635482bkj.11.2011.03.28.04.47.24
(version=TLSv1/SSLv3 cipher=OTHER);
Mon, 28 Mar 2011 04:47:25 -0700 (PDT)
Received-SPF: neutral (google.com: 83.169.60.65 is neither permitted nor denied by best guess record for domain of postmaster@localhost) client-ip=83.169.60.65;
Authentication-Results: mx.google.com; spf=neutral (google.com: 83.169.60.65 is neither permitted nor denied by best guess record for domain of postmaster@localhost) smtp.mail=postmaster@localhost
Received: (qmail 14495 invoked from network); 28 Mar 2011 13:47:24 +0200
Received: from ip-92-50-95-125.unitymediagroup.de (HELO localhost) (92.50.95.125)
by ds83-169-60-65.dedicated.hosteurope.de with SMTP; 28 Mar 2011 13:47:24 +0200
Received: from Spooler by localhost (Mercury/32 v4.62) ID MO000026;
28 Mar 2011 13:47:09 +0200
Received: from spooler by localhost (Mercury/32 v4.62); 28 Mar 2011 13:47:05 +0200
Received: from Danny-PC (127.0.0.1) by Test (Mercury/32 v4.62) ID MG000025;
28 Mar 2011 13:46:55 +0200
Date: Mon, 28 Mar 2011 13:46:55 +0200
Subject: bla
To: irgendwas@irgendwer.de
From:bla<postmaster@localhost>
Reply-To: postmaster@localhost
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="-----=0d4b5f4f60fcc25cee737e9dc5af7782"
Message-ID: <10088CA94CE0@localhost>
Ich sende Daten per Session über mehrere Seiten, das senden klappt auch solange ich keine Dateien mitsenden möchte (dafür hatte ich ein einfacheres Script)
alles bestens (habe nur die Reihenfolge verändert:
$name = "wetter/aktuell.gif";
$size = filesize($name);
$data = implode("",file($name));
$name = basename($name);
(also basename nach size und data).
mit
$content.= "Content-Type: text/plain\r\n";
funktionieren auch die Zeilenvorschübe im mail wieder (daran wäre ich fast verzweifelt).
Danke - das war der beste Vorschlag im web, den ich gefunden habe!
08.12.2011, 08:24
malong
Mitglied
Neuling
Dabei seit: 04.03.2012
Herkunft: keine Angabe
Posts: 1
UPDATE: Nachdem ich die Dateien per cURL geladen und anschließend eingebunden habe, funktioniert es nun. Warum, kann ich jedoch nicht sagen...
Hallo Community,
vielen Dank für dieses tolle Snippet! Eigentlich funktioniert auch alls wunderbar - bis auf eine Kleinigkeit:
Ich versuche, ein iPhone-Konfigurationsprofil, welches auf dem Server liegt, mit dem Script zu versenden. Solange ich nur diese eine Datei anhänge, klappt das auch und ich kann das Profil wie gewünscht auf dem iPhone installieren.
Wenn ich nun aber noch eine zweite Date zusätzlich anhänge (auch gleichen Typs), funktioniert das Profil nicht mehr. Und das, obwohl die beiden Script-Teile offensichtlich (quasi) identisch sind?!
Ich hoffe, es findet sich jemand, der mir das erklären kann!
Ich danke schon mal herzlich im Voraus!
Post wurde schon 1x editiert, das letzte mal am 11.02.2015 um 12:04 von alve1989