Mailversand

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

  • Mailversand

    Langsam verzweifle ich. Kaum ist das eine Problem gelöst, kommt das nächste

    Ich muss eine Mail im html-Format versenden. Im Textformat, kein Problem.

    funktionsfähiges Textformat:
    PHP-Code:
    // Ausgangswert für die Mail-Funktion
    $strEmpfaenger $mailadresse;
    $strFrom '"Newsletter" <info@testseite.de';
    $strSubject 'Newsletter vom '.$datum.' um '.$uhrzeit.' Uhr';
     
    $strMailtext 'Testtext test testtext text ....
     
    blablabla text testtext bla bla bla'
    ;
     
    // Mailversand
    @mail($strEmpfaenger$strSubject$strMailtext'From: '.$strFrom'); 
    ankommende Mail:
    Von: [COLOR=blue]Newsletter [info@testseite.de][/COLOR]
    An:[COLOR=blue] [/COLOR][COLOR=blue]meinemail@meinserver.de[/COLOR]
    Betreff: [COLOR=blue]Newsletter vom 29.09.2009 um 17:30 Uhr[/COLOR]
    Nachricht:
    [COLOR=blue]Testtext test testtext text ....[/COLOR]
    [COLOR=blue] [/COLOR]
    [COLOR=blue]blablabla text testtext bla bla bla[/COLOR]

    = alles korrekt wie es sein soll.



    nicht funktionsfähiges HTML-Format:
    PHP-Code:
    // Ausgangswert für die Mail-Funktion
    $strEmpfaenger $mailadresse;
    $strFrom '"Newsletter" <info@testseite.de';
    $strSubject 'Newsletter vom '.$formdatum.' um '.$uhrzeit.' Uhr';
     
    $strMailtext '<html><head><title></title></head><body>';
    $strMailtext $strMailtext.'<table><tr><td>';
    $strMailtext $strMailtext.'<h4>Newsletter</h4>';
    $strMailtext $strMailtext.'<strong>Testtext</strong> test testtext text .... <br /><br />blablabla text testtext bla bla bla';
    $strMailtext $strMailtext.'</td></tr></table></body></html>';
     
    // Mailversand 
    $strAntwortan  'antwort@testseite.de';
    $header  'MIME-Version: 1.0\r\n';
    $header .= 'Content-type: text/html; charset=iso-8859-1\r\n';
    $header .= 'From: '.$strFrom.'\r\n';
    $header .= 'Reply-To: '.$strAntwortan.'\r\n';
    // $header .= "Cc: $cc\r\n";  // falls an CC gesendet werden soll
    $header .= 'X-Mailer: PHP 'phpversion();
     
    mail($strEmpfaenger,
          
    $strSubject,
          
    $strMailtext,
          
    $header);
     
    echo 
    'Mails wurden gesendet!'
    ankommende Mail:
    Von: [COLOR=blue]postmaster+1398773@post.webmailer.de[/COLOR]
    An:[COLOR=blue] [/COLOR][COLOR=blue]meinemail@meinserver.de[/COLOR]
    Betreff: [COLOR=blue]Newsletter vom 29.09.2009 um 17:30 Uhr[/COLOR]
    Nachricht:
    [COLOR=blue]<html><head><title></title></head><body><table><tr><td><h4>Newsletter</h4>[/COLOR]
    [COLOR=blue]<strong>Testtext</strong> test testtext text .... <br /><br />blablabla text testtext bla bla bla</td></tr></table></body></html>[/COLOR]

    = nicht korrekt

    ~~~~~~

    \r\n wird ulkigerweise nicht akzeptiert. wenn ich \r\n in den Text der Textformatmail schreibe, erscheint \r\n dann auch im Text der Mail. Setze ich aber eine Leerzeile stattdessen, wird die Leerzeile auch in der Mail angezeigt.

    Ich schätze hier liegt auch das Problem bei der HTML-Format-Mail, da im $header ja \r\n angegeben werden soll. (Ohne funktioniert es auch nicht. Habe ich schon probiert.)

    Hat jemand mit diesem Problem Erfahrung?

    Danke schon einmal im Vorraus,
    Mira
    Zuletzt geändert von Miranda; 29.09.2009, 21:04.

  • #2
    Hallo Mira,

    das alte Problem: \r\n ist vollkommen richtig, aber der Server auf dem PHP läuft ist typischerweise ein UNIX/Linux-Server mit dem typischen sendmail. Da unter UNIX Zeilenumbrüche nur aus \n bestehen, fügt sendmail vor jedem \n ein \r ein. Bei deinem Mailquelltext wird also \r\r\n daraus und das ist dann nicht akzeptabel.

    Daher musst du (auch wenn es eigentlich falsch ist) alle(!) \r\n durch \n ersetzen, damit es funktioniert.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      hm, dann muss ich noch einen anderen Fehler drin haben. Habe jetzt alle \r\n durch \n ersetzt und bekomme bei meiner HTML-Format-Mail immernoch den gleichen "Schmarrn"

      Kommentar


      • #4
        Dann kommt noch dazu (das habe ich vorher selbst übersehen), dass du einfache Anführungszeichen statt doppelter verwendet hast. Wenn du dich im PHP Manual mal über den Unterschied zwischen beiden Notationen informierst, kommst du ziemlich schnell drauf, warum es nicht gehen kann
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          hm, dann hat man mir etwas falsches beigebracht. Es hieß dass man sich immer entscheiden muss welche Anführungsstriche man verwendet. Da ich im html-Code die doppelten verwende, habe ich für php-Code die einfachen genommen.

          Ich probiere es aber gleich mal mit doppelten aus.

          Kommentar


          • #6
            Zitat von Miranda Beitrag anzeigen
            hm, dann hat man mir etwas falsches beigebracht.
            Naja, jedenfalls hat man dir nur die halbe Wahrheit beigebracht.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von Miranda Beitrag anzeigen
              hm, dann hat man mir etwas falsches beigebracht. Es hieß dass man sich immer entscheiden muss welche Anführungsstriche man verwendet.
              Ja, sollte man auch.

              Da ich im html-Code die doppelten verwende, habe ich für php-Code die einfachen genommen.
              Dann musst du aber berücksichtigen, dass innerhalb derer weniger escape-Sequenzen interpretiert werden.

              Nachlesen: PHP: Strings - Manual
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                *freu*

                es lag wirklich an den Anführungszeichen. *staun*

                jetzt funktioniert alles *jubel*

                vielen, vielen Dank

                Kommentar


                • #9
                  Zitat von Miranda Beitrag anzeigen
                  es lag wirklich an den Anführungszeichen. *staun*
                  Das "*staun*" sagt mir, dass du dich nicht informiert hast, warum das so ist, was du aber solltest, sonst tappst du das nächste Mal in dieselbe Falle
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    hab mir die Seite unter Favoriten gespeichert. Da ich nicht so gut in englisch bin, brauche ich etwas länger um alles zu verstehen. Die Seite muss aber fertig werden (stehe leider etwas unter Zeitdruck), daher lese ich es etwas später.

                    Ich danke Dir aber für den Tip.

                    Kommentar


                    • #11
                      Zitat von Miranda Beitrag anzeigen
                      Da ich nicht so gut in englisch bin, brauche ich etwas länger um alles zu verstehen.
                      Deswegen gibt es das Handbuch hier auf der Site in deutsch: php-resource.de das PHP Handbuch - Hilfe zu den PHP Befehlen language.types.string

                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12


                        damit gehts natürlich schneller

                        Kommentar

                        Lädt...
                        X