Ankündigung

Einklappen
Keine Ankündigung bisher.

Mail hat ein zusätzliches File mit HTML-Code

Einklappen

Neue Werbung 2019

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

  • Mail hat ein zusätzliches File mit HTML-Code

    Hi

    Ich mache eine Mailfunktion mit Attachment. Es funktioniert aber es geht immer noch ein File mit, das eigentlich überflüssig

    PHP-Code:
    <?php
    $random 
    md5(uniqid(""));
    $unique substr("$random",0,20);
    $dateinamen="../pdf/$dateiname";
    $datei_content chunk_split(base64_encode(fread(fopen($dateinamen,"r"),filesize($dateinamen))));
    $grenze strtoupper(md5(uniqid(time())));;
    $headers ="MIME-Version: 1.0\n";
    $headers.="From: [email]info@xx.ch[/email]\n";
    $headers.="Reply-To: [email]info@xx.ch[/email]\n";
    $headers.="Content-Type: multipart/mixed;\n\tboundary=\"$grenze\"\n\n";
    $headers.="\n--$grenze";
    $headers.= "\nContent-Type: application/pdf; name=\"$dateinamen\"";
    $headers.= "\nContent-Transfer-Encoding: base64";
    $headers.= "\nContent-Disposition: attachment; filename=\"$dateiname\"";
    $headers.= "\n\n$datei_content";
    $mail .= "\n--$grenze\n";
    $mail .= "Content-Type: text/html; charset=ISO-8859-15\n\n";
    $mail .= "
    <html>
    <head>
    </head>
    <body>
    <table><tr><td>
    $anrede</td><tr>";   
    if (!empty(
    $text1))
    .
    ..
    $send_mail = @mail($testmail,$betreff,"$mail",$headers);
    ?>
    Ich weiss nicht mehr weshalb es ind er letzten Zeile ein @mail steht, aber es funktioniert, ausser dass jedesmal noch ein File mitgeht wo des ganze HTML-Text drin ist, als Teil 1.2


    Danke


  • #2
    Also noch eines mehr als bei
    headers.= "\nContent-Disposition: attachment; filename=\"$dateiname\"";
    $headers.= "\n\n$datei_content";
    angegeben, oder wie ist das jetzt gemeint?

    Kommentar


    • #3
      Ich werde es wohl nie verstehen, warum man sich mit denn Mail-Headern rumärgert, wenn es perfekte Klassen wie den phpMailer von http://phpmailer.sourceforge.net gibt.

      Gruß
      phpfan

      Kommentar


      • #4
        Ja, der Text steht im Mail und dann hat es noch eine HTML-Seite die beigelegt ist mit dem Text.

        Den http://phpmailer.sourceforge.net habe ich angesehen. Aber irgendwie kann ich das nicht mit meinen Bedürfnis kombinieren.

        Ich habe die Mailadressen (Mitglieder) in einer DB und möchte einen Newsletter programmieren. So dass je nach bedarf ein Mail verschickt werden kann, mit oder ohne Attachment. Die Seite und die DB sind bei einem Provider gehostet, der bietet zwar auch einen Newletter an, aber ich wollte es günstiger machen, und so selber programmieren.

        Kommentar


        • #5
          Aber irgendwie kann ich das nicht mit meinen Bedürfnis kombinieren.
          Warum das denn nicht? Muss man nicht verstehen, oder?

          Gruß
          phpfan

          Kommentar


          • #6
            Ja, der Text steht im Mail und dann hat es noch eine HTML-Seite die beigelegt ist mit dem Text.
            Hm, die Antwort verstehe ich mal wieder nicht.
            Du bist Dir im Klaren, dass
            headers.= "\nContent-Disposition: attachment; filename=\"$dateiname\"";
            $headers.= "\n\n$datei_content";
            $mail .= "\n--$grenze\n";
            $mail .= "Content-Type: text/html; charset=ISO-8859-15\n\n";
            genau das, was Du da beschreibst, ausdrückt? Ein attachment mit $datei_content als Inhalt und einmal inline-html.
            Folge lieber phpfans Rat; ist sicher besser so.

            Kommentar


            • #7
              Danke jetzt ging fast alles!

              Ich habe gemerkt, dass ich http://phpmailer.sourceforge.net nicht verstehen muss, und dann geht es - fast!

              Als einzelnes Mail geht bestens, doch ich möchte mehrere Adressen aus der DB gleichzeitig bemailen (Newsletter)

              Die Datensätze sind vorhanden, aber es geht nur ein Mail raus! Was mache ich falsch?

              PHP-Code:
              <?php
              require("phpmailer/class.phpmailer.php");
              //Adressen holen
              $query "select Mail from testmitglieder";
              $result mysql_query($query,$link);
              $num mysql_num_rows($result);
              for (
              $i 0$i $num$i++)
              {
              //Start Schleife
              $row mysql_fetch_array($result);
              $mail = new PHPMailer();
              $mail->From "info@xxxx";
              $mail->FromName "xxxxxx";
              $mail->AddAddress("$row[Mail]");
              $mail->AddReplyTo("info@xxxx");
              $mail->WordWrap 50
              // wenn 1 PDF
              if(!empty($dateifilea) and empty($dateifileb))
              {
              copy ($dateifilea,"../pdf/$dateiname");
              $mail->AddAttachment("../pdf/$dateiname"); 
              }
              // wenn 2 PDF
              if(!empty($dateifilea) and !empty($dateifileb))
              {
              copy ($dateifilea,"../pdf/$dateiname");
              copy ($dateifileb,"../pdf/$dateiname2");
              $mail->AddAttachment("../pdf/$dateiname"); $mail->AddAttachment("../pdf/$dateiname2"); 
              }
              //Mail
              $mail->IsHTML(true);                                
              $mail->Subject "$betreff";
              $mail->Body    "$MESSAGEHTML";
              $mail->AltBody "$messageplain";
              // Schluss Schleife
              }
              //Wenn Mail nicht geschickt
              if(!$mail->Send())
              {
                 echo 
              "<h3>Das Mail konnte nicht verschickt werden. ";
                 echo 
              "Mailer Fehler: " $mail->ErrorInfo;
                 echo 
              "</h3>";
                 exit;
              }
              echo 
              "<h3>Das Mail ist abgeschickt.</h3>";
              ?>

              Kommentar

              Lädt...
              X