PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Mime Emails mit unnötigem Text im Body (https://www.php-resource.de/forum/php-developer-forum/102856-mime-emails-mit-unnoetigem-text-im-body.html)

Earl of Green 12-04-2012 11:05

Mime Emails mit unnötigem Text im Body
 
Hallo,
ich bin jetzt seit zwei Tagen Google am durchforsten, aber ich finds nicht!

Ich verschicke mit PHP Mails mit Anhang. Funktioniert!
Ich schaffe es aber nicht, dass die unsinnigen boundary-Texte nicht mit angezeigt werden.
Wenn ich vom Outlook eine Mail mit Anhang verschicke werden diese Texte ja auch nicht angezeigt?

z.B:
------=_NextPart_001_025A_01CD180F.2887FFF0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

bzw. mittendrin + am Ende sowas wie:
------=_NextPart_001_025A_01CD180F.2887FFF0--

Kann mir bitte jemand nen Tipp geben???

Danke!
Stefan

Earl of Green 12-04-2012 17:15

PS: Eine weitere Info:
Ich habe es auch mit einer fertigen Mailklasse versucht (phpMimeMail5), aber da hatte ich genau das gleiche Problem!

h3ll 12-04-2012 17:21

Zitat:

Zitat von Earl of Green (Beitrag 660382)
phpMimeMail5

Kenn ich nicht. Versuche mal PHPMailer.

Quetschi 12-04-2012 18:07

Wie sieht der Quelltext der Mails aus? Ist Content-Type mit Boundary im Mailheader ordentlich notiert?

Earl of Green 12-04-2012 19:43

Hallo,
erstmal Dank für Feedback!

Ich nehme nun keine Mailklasse, weil meine "Miniklasse" schlanker ist, ich sie nur für diesen kleinen Zweck brauche und ich mit der großen Mailklasse die gleichen Ergebnisse habe.

Das ist die Mail-Funktion. Alle Infos habe ich mir aus dem Inet besorgt und mit etwas Eigenwissen angereichert...

Code:


function send_plaintext_mail($subject, $body, $from_name, $from_email, $to_email, $attachments)
        {
                $mime_boundary = "-----=" . md5(uniqid(mt_rand(), 1));

                $header ="From:" . $from_name . "<" . $from_email . ">\n";
                $header .= "Reply-To: " . $from_email . "\n";

                $header .= "MIME-Version: 1.0\r\n";
                $header .= "Content-Type: multipart/mixed;\r\n";
                $header .= " boundary=\"" . $mime_boundary . "\"\r\n";

                $content = "This is a multi-part message in MIME format.\r\n\r\n";
                $content .= "--" . $mime_boundary . "\r\n";
                $content .= "Content-Type: text/plain; charset=iso-8859-1\"\r\n";
                $content .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
                $content .= $body . "\r\n";

                //$attachments ist ein Mehrdimensionals Array
                //$attachments enthält mehrere Dateien
                if (is_array($attachments) AND is_array(current($attachments))) {
                        foreach($attachments AS $dat) {
                                $data = $dat[3];
                                $content .= "--" . $mime_boundary . "\r\n";
                                $content .= "Content-Disposition: attachment;\r\n";
                                $content .= "\tfilename=\"" . $dat[0] . "\";\r\n";
                                $content .= "Content-Length: ." . $dat[4] . ";\r\n";
                                $content .= "Content-Type: " . $dat[1] . "; name=\"" . $dat[0] . "\"\r\n";
                                $content .= "Content-Transfer-Encoding: base64\r\n\r\n";
                                $content .= $data . "\r\n";
                        }
                        $content .= "--" . $mime_boundary . "--";
                }
                else {//Nur 1 Datei als Anhang
                        $data = chunk_split(base64_encode($attachments['data']));
                        $content .= "--" . $mime_boundary . "\r\n";
                        $content .= "Content-Disposition: attachment;\r\n";
                        $content .= "\tfilename=\"" . $attachments['name'] . "\";\r\n";
                        $content .= "Content-Length: ." . $dat['size'] . ";\r\n";
                        $content .= "Content-Type: " . $attachments['type'] . "; name=\"" . $attachments['name'] . "\"\r\n";
                        $content .= "Content-Transfer-Encoding: base64\r\n\r\n";
                        $content .= $data . "\r\n";
                }
                if(@mail($to_email, $subject, $content, $header)) {
                        return true;
                }
                else {
                        return false;
                }
        }


h3ll 12-04-2012 20:00

Zitat:

Zitat von Earl of Green (Beitrag 660387)
Ich nehme nun keine Mailklasse, weil meine "Miniklasse" schlanker ist

Und anscheinend sooo gut funktioniert. Tja, Pech gehabt. Wer nicht will, der hat schon.

Quetschi 12-04-2012 20:07

Zitat:

Zitat von Earl of Green (Beitrag 660387)
Ich nehme nun keine Mailklasse, weil meine "Miniklasse" schlanker ist, ich sie nur für diesen kleinen Zweck brauche und ich mit der großen Mailklasse die gleichen Ergebnisse habe.

Das ist die Mail-Funktion. Alle Infos habe ich mir aus dem Inet besorgt und mit etwas Eigenwissen angereichert...

Also eine vernünftige Mailklasse gehört zu den Dingen um die ich mir beim besten Willen selber keine Sorgen machen mag auch wenn ich sonst eher zu denen zähle, die gerne selber möglichst viel in der Hand haben und durchaus auch auf "Schlankheit" setzen. Aber die paar KB die eine vernünftige Mail-Klasse auf die Waage bringt sind es definitiv mal nicht Wert.

Wenn du mit der Mailklasse die selben Probleme bekommst wie ohne, dann stell ich mir die Frage, wie du sie benutzt?! Ich werd den Verdacht nicht los, dass du der Mailklasse auch einfach nur deine selbst zusammengeschusterte Mail übergibst und dich dann über das Ergebnis wunderst.

Earl of Green 13-04-2012 09:07

Guten Morgen,

@Quetschi
Danke für Deinen Input. Nein, ich habe diese Funktion komplett auskommentiert und "wie neu" mit der Mailklasse gearbeitet...

@h3ll
Erstens: Danke für diese Info! Und wenn es 10000 coole und tolle Mailklassen gibt, so gibt es doch Menschen, die einfach gerne selber basteln und sich damit beschäftigen.
Zweitens: Mit der Mailklasse hat es auch nicht funktioniert (wie schon geschrieben!) - also scheint es wohl an was anderem zu liegen...

Quetschi 13-04-2012 09:14

Zeig mal den Code, mit dem du es mit der Mailklasse versuchst.

h3ll 13-04-2012 09:16

Zitat:

Zitat von Earl of Green (Beitrag 660398)
Erstens: Danke für diese Info! Und wenn es 10000 coole und tolle Mailklassen gibt, so gibt es doch Menschen, die einfach gerne selber basteln und sich damit beschäftigen.

Dann viel Spaß. Das ist fast eine Lebensaufgabe. Wieviele Wochen oder Monate hast du vor darin zu investieren? So einfach, wie du dir das vorstellst, ist das nicht.

Zitat:

Zitat von Earl of Green (Beitrag 660398)
Zweitens: Mit der Mailklasse hat es auch nicht funktioniert (wie schon geschrieben!) - also scheint es wohl an was anderem zu liegen...

Du hast noch immer nicht gezeigt, wie du die Mailklasse anwendest. Wann machst du das?

Willst du jetzt eigentlich Hilfe, oder willst du nur die Leute hier nerven? Wie wäre es, wenn du mal mitarbeitest statt gegen uns zu arbeiten?

Earl of Green 13-04-2012 09:34

Ich habe leider Mailklasse und die entsprechenden Aufrufe alle verworfen.

Ich habe die Klasse eingebunden, instanziert und dann die entsprechenden Werte übergeben:

Sah ca so aus:
Code:

$mail = new htmlMimeMail5()
$mail->getSubject = $subject
$mail->getBody = $body
$mail->getAttachment(name, conttype, encoding)
$mail->send($to_email)

... wie gesagt - genau nach Anweisung (Developer's Guide - Nutzung der Mail-Klasse htmlMimeMail5). War echt easy - aber Boundary-Texte wurden ebenfalls angezeigt.

Kann ich vorher was falsch machen beim Attachment? Doch eigentlich nicht, weil die Boundary ja vom Mail-Zusammenbauen kommt.... ?!?!?

h3ll 13-04-2012 09:46

Die Klasse gibts offenbar nicht mehr. Der Link führt ins nichts.

Bitte verwende eine aktuelle Klasse, und nicht irgendwas Unbekanntest aus dem Jahre Schnee.

Earl of Green 13-04-2012 14:11

...auch mit PHPMailer habe ich dieses Problem :kotz:
Es scheint wohl daran zu liegen, dass ich vorher irgendwas falsch bearbeite :-(

Danke erstmal für Eure Info

h3ll 13-04-2012 14:13

Zitat:

Zitat von Earl of Green (Beitrag 660418)
...auch mit PHPMailer habe ich dieses Problem :kotz:
Es scheint wohl daran zu liegen, dass ich vorher irgendwas falsch bearbeite :-(

Es wäre hilfreich, wenn du zeigst, was du genau machst.

Earl of Green 13-04-2012 14:35

Sorry h3ll, aber Du scheinst Dich mit PHPMailer auszukennen, deshalb nerv ich Dich hier direkt ...

Ich hab das doch richtig verstanden, dass ich den relativen Pfad der Datei angeben muss. Also z.B. "/www/htdocs/w00f1754/docs/pdf_verein/Reisekosten.pdf" ???


PS:
Der Grund warum ich bis jetzt auf PHPMailer verzichtet habe ist u.a. der, dass ich Mails aus einem Postfach weiterleiten möchte. Bei PHPMailer MUSS ich diese Dateien erst speichern, bevor ich Sie weiterleiten kann (wenn ich das richtig verstanden habe... :goth:)


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:46 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG