Mime Emails mit unnötigem Text im Body

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

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

    Kommentar


    • #3
      Zitat von Earl of Green Beitrag anzeigen
      phpMimeMail5
      Kenn ich nicht. Versuche mal PHPMailer.

      Kommentar


      • #4
        Wie sieht der Quelltext der Mails aus? Ist Content-Type mit Boundary im Mailheader ordentlich notiert?
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          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;
          		}
          	}

          Kommentar


          • #6
            Zitat von Earl of Green Beitrag anzeigen
            Ich nehme nun keine Mailklasse, weil meine "Miniklasse" schlanker ist
            Und anscheinend sooo gut funktioniert. Tja, Pech gehabt. Wer nicht will, der hat schon.

            Kommentar


            • #7
              Zitat von Earl of Green Beitrag anzeigen
              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.
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8
                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...

                Kommentar


                • #9
                  Zeig mal den Code, mit dem du es mit der Mailklasse versuchst.
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    Zitat von Earl of Green Beitrag anzeigen
                    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 von Earl of Green Beitrag anzeigen
                    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?

                    Kommentar


                    • #11
                      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.... ?!?!?

                      Kommentar


                      • #12
                        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.

                        Kommentar


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

                          Danke erstmal für Eure Info

                          Kommentar


                          • #14
                            Zitat von Earl of Green Beitrag anzeigen
                            ...auch mit PHPMailer habe ich dieses Problem
                            Es scheint wohl daran zu liegen, dass ich vorher irgendwas falsch bearbeite :-(
                            Es wäre hilfreich, wenn du zeigst, was du genau machst.

                            Kommentar


                            • #15
                              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... )

                              Kommentar

                              Lädt...
                              X