Marcolino: E-Mail landen bei GMX im Spam-Ordner

Hallo zusammen

vor einigen Tagen habe ich diesen Beitrag geschrieben:
http://forum.de.selfhtml.org/archiv/2008/5/t170883/

Nun habe ich einiges geändert aber leider landen die Mails immer noch im SPAM bei GMX:

Hier einmal der Header von GMX:

************************************************
Return-Path: dertausc@server14.cyon.ch
X-Flags: 1001
Delivered-To: GMX delivery to marco81@gmx.net
Received: (qmail invoked by alias); 13 May 2008 22:23:42 -0000
Received: from server14.cyon.ch (EHLO server14.cyon.ch) [194.126.200.24]
  by mx0.gmx.net (mx028) with SMTP; 14 May 2008 00:23:42 +0200
Received: from dertausc by server14.cyon.ch with local (Exim 4.68)
 (envelope-from dertausc@server14.cyon.ch)
 id 1Jw2uC-0007wS-Mr
 for marco81@gmx.net; Wed, 14 May 2008 00:23:32 +0200
To: marco81@gmx.net
Subject: Schau mal auf dertausch | friends vorbei
X-PHP-Script: www.dertausch.ch/friends/freunde_einladen.php for 80.219.158.233
From: Marco Gehrigmarco@g-design.ch
Content-type: text/html; charset=iso-8859-1
Message-Id: E1Jw2uC-0007wS-Mr@server14.cyon.ch
Date: Wed, 14 May 2008 00:23:32 +0200
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server14.cyon.ch
X-AntiAbuse: Original Domain - gmx.net
X-AntiAbuse: Originator/Caller UID/GID - [32716 32002] / [47 12]
X-AntiAbuse: Sender Address Domain - server14.cyon.ch
X-Source: /usr/local/php4/bin/php
X-Source-Args: /usr/local/php4/bin/php
X-Source-Dir: dertausch.ch:/public_html/friends
X-GMX-Antivirus: -1 (not scanned, may not use virus scanner)
X-GMX-Htest: 0.8
X-GMX-Antispam: 5 (HTML_IMAGE_ONLY_16,HTML_MESSAGE,HTML_TAG_BALANCE_BODY,MIME_HEADER_CTYPE_ONLY,MIME_HTML_ONLY)
X-GMX-UID: 1iMffHBtTiEsOsCcl2RwOKx1ZUVSRBdB

******************************************

Kann mir jemand helfen, wieso diese immer noch im SPAM landen.
Liegt das an meinem Hoster? Was kann ich noch machen?

Gruss Marco

  1. Nun habe ich einiges geändert aber leider landen die Mails immer noch im SPAM bei GMX:

    Kann mir jemand helfen, wieso diese immer noch im SPAM landen.

    From: Marco Gehrigmarco@g-design.ch

    Da ------------------^ sollte ein Leerzeichen zwischen, aber nur der Schönheit halber. Wir haben ja einen gewissen Anspruch hier ;-)

    X-GMX-Htest: 0.8
    X-GMX-Antispam: 5 (HTML_IMAGE_ONLY_16,HTML_MESSAGE,HTML_TAG_BALANCE_BODY,MIME_HEADER_CTYPE_ONLY,MIME_HTML_ONLY)

    Da steht's, was in der Summe zur Filterung führt:

    HTML_IMAGE_ONLY_16
    Der oder den Grafiken stehen nur etwa 1,6 KByte an Text gegenüber.

    HTML_MESSAGE
    Es handelt sich um eine Nachricht im HTML-Format.

    HTML_TAG_BALANCE_BODY
    In deinem <body> hast du Elemente, die nicht ordentlich verschachtelt sind bzw. denen ein schließendes Gegenstück fehlt. Falls sie dir nicht gleich auffallen, benutze http://validator.w3.org (dort kannst du auch zu prüfenden HTML-Code in ein Textfeld eingeben).

    MIME_HEADER_CTYPE_ONLY
    Du hast nur Content-Type: angegeben, aber keine weiteren MIME-Angaben.

    MIME_HTML_ONLY
    Du hast nur HTML in deiner Mail, keine Alternative mit reinem Text.

    Sämtliche Eigenschaften sind unter http://spamassassin.apache.org/tests_3_2_x.html aufgeführt, leider nicht alle mit einer detailierten Beschreibung.
    Beachte, dass das Problem die Summe aller Eigenschaften ist. Würdest du also die einfachsten Dinge beheben, zum Beispiel den HTML-Code korrigieren (HTML_TAG_BALANCE_BODY) und den Kopf um die Zeile 'MIME-Version: 1.0' erweitern (MIME_HEADER_CTYPE_ONLY), könnte die Mail schon durchschlüpfen, weil die restlichen Problemchen nicht mehr genug Gewicht einbringen.

    Noch besser, aber etwas aufwendiger, wäre es natürlich, würdest du auch noch eine Textalternative anbieten. Dafür schickst du dir am besten selbst eine HTML-Mail und schaust dir selbige im Rohformat an. Ganz grob sieht die Struktur so aus:

    From: blablabla
    To: blablabla
    […]
    MIME-Version: 1.0
    Content-Type: multipart/alternative; boundary="eineganzlangekettezufälligerzeichendieganzbestimmtnichtindermailvorkommtunddeshalbauchnichtauswörternbestehensolltewiediehier"

    --eineganzlangekettezufälligerzeichendieganzbestimmtnichtindermailvorkommtunddeshalbauchnichtauswörternbestehensolltewiediehier
    Content-Type: text/html; charset="iso-8859-1"
    Content-Transfer-Encoding: 8bit

    <html><body><p>Deine Nachricht im HTML-Format.</p></body></html>

    --eineganzlangekettezufälligerzeichendieganzbestimmtnichtindermailvorkommtunddeshalbauchnichtauswörternbestehensolltewiediehier
    Content-Type: text/plain; charset="iso-8859-1"
    Content-Transfer-Encoding: 8bit

    Dieselbe Nachricht, nur diesmal als reiner Text.

    An dem bemängelte Verhältnis von Grafikdaten zum Text (HTML_IMAGE_ONLY_16) wirst du vermutlich nicht viel ändern können. Aber wie bereits oben geschrieben, sollte dies alleine nicht mehr dazu führen, dass der Spamfilter anschlägt.

    1. Liebe(r)s Teufelchen

      Wow, das ist ja eine der kompetentesten Antworte gewesen welche ich seit langem auf eine Frage erhalten habe - HERZLICHEN DANK!

      Ich werde mir nun in Ruhe alles einmal genau durchschauen und hoffe, dass ich es schaffe, dass das Mail durchschlüpft.

      Nochmals vielen vielen Dank. Ich erlaube es mir, wenn noch was ist, nochmals zu fragen :-)

      Gruss Marco

    2. Hallo Teufelchen

      Ich finde das Problem einfach nicht betreffend dem HTML_TAG_BALANCE_BODY.
      Hier mal den Quelltext vielleicht hast Du noch eine Idee oder ein Tipp!

      Übrigens das: MIME_HEADER_CTYPE_ONLY habe ich nun weg. Reicht leider noch nicht - es landet immer noch SPAM.

      **************************************

      // HTML E-Mail versenden

      $mitteilung .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <title>dertausch.ch | friends - tausche dein wissen und lerne neue Leute kennen!</title>
      <style type="text/css">
      <!--
      .Stil1 {
       font-family: Arial, Helvetica, sans-serif;
       font-size: 12px;
      }
      .Stil2 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
      -->
      </style>
      </head>

      <body>
      <table width="480" border="0" cellspacing="0" cellpadding="0" class="Stil1">
        <tr>
          <td width="128" valign="top"><img src="'.$bild.'" alt="'.$row_benutzer->vorname." ".$row_benutzer->name.'" width="100" height="126" /></td>
          <td width="352" valign="top"><p class="Stil2">Schau doch mal vorbei!</p>
           Auf dieser Plattform <a href="http://www.dertausch.ch/friends?id='.$_SESSION[id].'&act='.$zufallszahl.'">www.dertausch.ch/friends</a> hast du die Möglichkeit,
       dein Wissen und deine Interessen mit anderen Personen zu tauschen
       und dabei neue Leute kennen zu lernen.<br/><br/>';

      if ($_POST['nachricht'] <> "") {

      $mitteilung .= "---------------------------------------------------------------------------------<br/>";
      $mitteilung .= nl2br($_POST['nachricht'])."<br/>";
      $mitteilung .= "---------------------------------------------------------------------------------<br/><br/>";

      }

      $mitteilung .= "Gr&uuml;sse ".$row_benutzer->vorname."<br/>";

      ' </td></tr>
      </table>
      </body>
      </html>';

      **************************************

      Danke für Deine Hilfe.

      1. Ich finde das Problem einfach nicht betreffend dem HTML_TAG_BALANCE_BODY.
        Hier mal den Quelltext vielleicht hast Du noch eine Idee oder ein Tipp!

        Das ist nicht der Quelltext der Mail, aber Teufelchen hat dir auch schon den Link gezeigt, wo du deinen HTML Code validieren kannst.

        Struppi.

        1. Hi,

          Ja das problem ist, dass GMX irgendwie noch vieles anderes reinschreibt wenn ich es bei GMX anschaue.

          Voila hier ist der Code aus GMX. Wenn ich diesen dann mit dem Validator teste wird es mir schwindlig.

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <title>dertausch.ch | friends - tausche dein wissen und lerne neue Leute kennen!</title>
          <style type="text/css">
          <!--
          .Stil1 {font-family:Arial, Helvetica, sans-serif;font-size:12px;}
          .Stil2 {font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:bold;}
          -->

          <!--
          .Stil1 {font-family:Arial, Helvetica, sans-serif;font-size:12px;}
          .Stil2 {font-family:Arial, Helvetica, sans-serif;font-size:12px;font-weight:bold;}
          -->
          </style>
          <script type="text/javascript">var PARSEBODYTOHIGHLIGHT = true; var TOSEARCH = new Array();</script><script type="text/javascript" src="/de/js/searchTokenHighlighing.js"></script>
          </head>
          <body style="margin:0;padding:0">
          <table width="480" border="0" cellspacing="0" cellpadding="0" class="Stil1"><tr>
          <td width="128" valign="top"><img src="http://www.dertausch.ch/images/benutzer/TN1207783636marco01.jpg" alt="Marco Gehrig" width="100" height="126" title="Marco Gehrig"></td>
              <td width="352" valign="top">
          <p class="Stil2">Schau doch mal vorbei!</p>
               Auf dieser Plattform <a href="http://service.gmx.net/de/cgi/derefer?TYPE=3&amp;DEST=http%3A%2F%2Fwww.dertausch.ch%2Ffriends%3Fid%3D1%26act%3D" target="_blank" target="_blank">www.dertausch.ch/friends</a> hast du die M&ouml;glichkeit,
           dein Wissen und deine Interessen mit anderen Personen zu tauschen
           und dabei neue Leute kennen zu lernen.<br><br>---------------------------------------------------------------------------------<br>test<br>---------------------------------------------------------------------------------<br><br>Gr&uuml;sse Marco<br>
          </td>
          </tr></table>
          </body>
          </html>

          1. MIME_HEADER_CTYPE_ONLY habe ich nun weg. Reicht leider noch nicht - es landet immer noch SPAM.

            Ja das problem ist, dass GMX irgendwie noch vieles anderes reinschreibt wenn ich es bei GMX anschaue.

            Das hat keinen Einfluss auf den Spamfilter. Der Filter sitzt gleich am Eingang, den Krimskrams schreibt GMX erst hinterher dazu und sicher auch nur, wenn man's sich im Web anschaut.

            Voila hier ist der Code aus GMX. Wenn ich diesen dann mit dem Validator teste wird es mir schwindlig.

            Ich musste selbst erstmal genau hinschauen und wundere mich immer noch etwas über die Pingeligkeit des Filters. Sowas …

            und dabei neue Leute kennen zu lernen.<br><br>-----------------------------------

            … ist in HTML erlaubt, aber nicht in XHTML. Probiere es mit <br />. Der Fehler steckt in folgender Zeile:

            $mitteilung .= nl2br($_POST['nachricht'])."<br/>";

            Die einfache Lösung wäre, nl2br() durch str_replace("\n", "<br />\n", $_POST['nachricht']) zu ersetzen.
            Man könnte natürlich mehrere \n gegen einen Absatz austauschen, wenn's ganz besonders hübsch werden soll. Das wird aber etwas verzwickt, weil zum die \n ersetzenden </p> ja noch das <p> gehört. Falls du mal Langeweile hast …

            Davon unabhängig gibt es zwei kritische Sicherheitsaspekte zu beachten: Soweit ich die Funktionalität überblicke, könnte ich momentan im Formularfeld nachricht bösen HTML-Code unterbringen, als E-Mail-Adresse jene meines Opfers, und schon bekommt irgendwer schlimme Post - und du bist der Dumme, der sie verschickt hat.
            Du solltest hier unbedingt htmlspecialchars() einsetzen!

            $mitteilung .= str_replace("\n", "<br />\n", htmlspecialchars($_POST['nachricht'])) . "<br />";

            Eventuell ähnlich kritisch ist das Einfügen des Benutzernamens:

            <td width="128" valign="top"><img src="'.$bild.'" alt="'.$row_benutzer->vorname." ".$row_benutzer->name.'" width="100" height="126" /></td>

            Das geht zumindest schonmal dann in die Hose, wenn es um Bernhard "Bernie" Geröllheimer geht. Auch hier zumindest:

            <td width="128" valign="top"><img src="'.$bild.'" alt="' . htmlspecialchars($row_benutzer->vorname . " " . $row_benutzer->name) . '" width="100" height="126" /></td>

            1. Hi

              Komisch wenn ich das enteferne geht es:

              **************************************
              <style type="text/css">
              <!--
              .Stil1 {
               font: 0.7em/140% verdana, tahoma, arial, sans-serif;
              }
              .Stil2 {

              font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold;

              }
              -->
              </style>
              **************************************

              Möchte jedoch css verwenden. Hmmm :-)

              Die zwei <br><br> habe ich im Quellcode richtig definiert als <br/><br/> also komisch das es umgewandelt wird.

              Hmm...

              Danke für Deine Hilfe.

              Marco

              1. Mahlzeit,

                Möchte jedoch css verwenden. Hmmm :-)

                Dann tu das auch vernünftig: HTML-Kommentare haben im CSS-Bereich nichts zu suchen und "Stil1" bzw. "Stil2" ist in keinster Weise aussagekräftig.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. hi

                  Dann tu das auch vernünftig: HTML-Kommentare haben im CSS-Bereich nichts zu suchen und "Stil1" bzw. "Stil2" ist in keinster Weise aussagekräftig.

                  css habe ich doch richtig eingebunden:

                  <style type="text/css"><!--
                  --></style>

                  hat doch nichts mit kommentar zu tun...

                  1. Mahlzeit,

                    css habe ich doch richtig eingebunden:

                    Nein.

                    <style type="text/css"><!--
                    --></style>

                    Ich wüsste nicht, dass "<!--" und "-->" gültige CSS-Anweisungen sind.

                    hat doch nichts mit kommentar zu tun...

                    Doch?

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hi

                      Okey :-) Eigentlich machte ich das aus diesem Grund:

                      Damit ältere Web-Browser, die keine Stylesheets kennen, den Inhalt des style-Elements nicht irrtümlich als anzuzeigenden Text interpretieren, können Sie den Inhalt in einen  HTML-Kommentar (<!-- ... -->) einbinden.

                      War aber nicht das Problem :-)

                      Gruss Marco

                      1. Damit ältere Web-Browser, die keine Stylesheets kennen, den Inhalt des style-Elements nicht irrtümlich als anzuzeigenden Text interpretieren, können Sie den Inhalt in einen  HTML-Kommentar (<!-- ... -->) einbinden.

                        Du rechnest damit, dass jemand diese Mails mit einem Netscape 3 liest?

                        Struppi.

                        1. hi struppi

                          huii nein eigentlich nicht :-) darum ist es so und der code braucht es nicht. aber denke auf "normalen" seiten stört das ja nicht. in meinem
                          fall habe ich es nun entfernt.

                          wobei diese wie oben erwähnt das problem noch nicht gelöst hat.

                          gruss marco

              2. Komisch wenn ich das enteferne geht es:

                **************************************
                <style type="text/css">
                <!--
                .Stil1 {
                font: 0.7em/140% verdana, tahoma, arial, sans-serif;
                }
                .Stil2 {

                font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold;

                }
                -->
                </style>

                Dann stört er sich möglichweise an dem doppelten Kommentar, der in der ursprünglichen Fassung noch vorhanden war. Im Großen und Ganzen sind diese Kommentare bzw. die Kommentarelemente auch überflüssig, also raus mit dem Ballast.

                1. Hey Teufelchen

                  Langsam komme ich dem ganzen auf die schliche:

                  Habe das CSS nun direkt im Tag integriert also so:

                  ************
                  <table width="480" border="0" cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 12px;">
                    <tr>
                      <td width="128" valign="top"><img src="'.$bild.'" alt="'.$row_benutzer->vorname." ".$row_benutzer->name.'" width="100" height="126" /></td>
                      <td width="352" valign="top"><p style="font-weight: bold;">Schau doch mal vorbei!</p>
                  ***********

                  Bei meinem mail welches versendet wird kann man noch individuell einen text eingeben. wenn dieser nun 1-2 zeilen lang ist, dann landet es nicht im spam. ist der text aber 4-5 zeilen lang - schwups landet es wieder im spam!

                  ufff! was kann ich noch machen?

                  gruss marco

                  1. Bei meinem mail welches versendet wird kann man noch individuell einen text eingeben. wenn dieser nun 1-2 zeilen lang ist, dann landet es nicht im spam. ist der text aber 4-5 zeilen lang - schwups landet es wieder im spam!

                    ufff! was kann ich noch machen?

                    Spamassassin sagt dir doch was zu machen ist.

                    Struppi.

                  2. Habe das CSS nun direkt im Tag integriert also so:

                    Naja, aber das kann ja nicht Sinn der Sache sein.

                    Bei meinem mail welches versendet wird kann man noch individuell einen text eingeben. wenn dieser nun 1-2 zeilen lang ist, dann landet es nicht im spam. ist der text aber 4-5 zeilen lang - schwups landet es wieder im spam!

                    ufff! was kann ich noch machen?

                    Es wäre wohl am besten, wenn du erstmal die Nur-Text-Alternative hinzufügst.

                    Ich habe mit deinem Beispiel etwas rumgespielt, anscheinend stehst du gerade so auf der Kippe. Die nachfolgende Mail kommt durch (exakt so an sendmail übergeben), unabhängig davon, wie lang der Text zwischen den horizontalen Linen ist. Sie landet im Spam-Ordner, wenn ich die MIME-Zeile weglasse.

                    From: bla@example.com
                    To: das.teufelchen75@gmx.de
                    Subject: dertausch.ch | friends - tausche dein wissen und lerne neue Leute kennen!
                    Content-Type: text/html; charset=iso-8859-1
                    MIME-Version: 1.0

                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                    <html xmlns="http://www.w3.org/1999/xhtml">
                    <head>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                    <title>dertausch.ch | friends - tausche dein wissen und lerne neue Leute
                    kennen!</title>
                    <style type="text/css">
                    <!--
                    .Stil1 {
                     font-family: Arial, Helvetica, sans-serif;
                     font-size: 12px;
                    }
                    .Stil2 {font-family: Arial, Helvetica, sans-serif; font-size: 12px;
                    font-weight: bold; }
                    -->
                    </style>
                    </head>

                    <body>
                    <table width="480" border="0" cellspacing="0" cellpadding="0" class="Stil1">
                      <tr>
                        <td width="128" valign="top"><img src="bild"
                    alt="vorname name" width="100"
                    height="126" /></td>
                        <td width="352" valign="top"><p class="Stil2">Schau doch mal vorbei!</p>
                         Auf dieser Plattform <a
                    href="http://www.dertausch.ch/friends?id=123&amp;act=123">www.dertausch.ch/friends</a>
                    hast du die Möglichkeit,
                     dein Wissen und deine Interessen mit anderen Personen zu tauschen
                     und dabei neue Leute kennen zu lernen.<br/><br/>

                    ---------------------------------------------------------------------------------<br/>
                    blafasel
                     dein Wissen und deine Interessen mit anderen Personen zu tauschen<br>
                     und dabei neue Leute kennen zu lernen.<br>
                     dein Wissen und deine Interessen mit anderen Personen zu tauschen<br>
                     und dabei neue Leute kennen zu lernen.<br>
                     dein Wissen und deine Interessen mit anderen Personen zu tauschen<br>
                     und dabei neue Leute kennen zu lernen.<br>

                    <br/>
                    ---------------------------------------------------------------------------------<br/><br/>

                    Gr&uuml;sse Vorname<br/>

                    </td></tr>
                    </table>
                    </body>
                    </html>

                    1. Hallo Teufelchen

                      Werde es gleich ausprobieren aber habe noch eine frage zu
                      "Nur-Text-Alternative".

                      Ich habe es durchgelesen und bin mir nicht ganz sicher wie
                      du das meinst. einfach z.b. noch ein radiobuttion wo man auswählen kann
                      ob man html oder textmail versenden will? oder wie genau meisnt du das
                      mit dem "Nur-Text-Alternative".

                      Gruss Marco

                      1. Hallo,

                        habe noch eine frage zu "Nur-Text-Alternative".
                        [...] einfach z.b. noch ein radiobuttion wo man auswählen kann ob man html oder textmail versenden will? oder wie genau meisnt du das mit dem "Nur-Text-Alternative".

                        nein, ganz falsche Baustelle!
                        Stell dir mal die Frage: Was ist eine e-Mail-Nachricht ursprünglich?
                        Genau, ein Stück Text. Und genau darum geht's.

                        Trotz aller Möglichkeiten, den Mail-Inhalt mit HTML aufzubereiten, sollte der eigentliche Inhalt *immer* alternativ als Plaintext-Teil enthalten sein.
                        Deswegen erstellt man HTML-Mails, wenn man es anständig machen will, als sogenannte Multipart-Mails. Sie bekommen den MIME-Typ "multipart/alternative" und enthalten zwei (oder mehr) Blöcke, die inhaltlich gleichwertig (alternativ) sind. Jeder dieser Blöcke ist sozusagen eine e-Mail innerhalb der e-Mail und hat wiederum seinen eigenen Content-Type - z.B. "text/plain" für den ersten und "text/html" für den zweiten Block.

                        Der Mailclient des Empfängers kann sich dann, je nach Einstellungen und Vorlieben des Nutzers, einen dieser alternativen Blöcke auswählen. Nur so kann man erreichen, dass auch diejenigen, die ihren Mailclient auf "nur Text" eingestellt haben, etwas Adäquates zum Lesen bekommen.

                        So long,
                         Martin

                        --
                        Die letzten Worte des Architekten:
                        Mir fällt da gerade was ein...
                        1. Hallo Martin

                          Zuerst mal danke für Deine Hilfe. Wird mir schon etwas klarer. Wie würde dann ein solches Mail aussehen. Könntest Du mir da ein Beispiel machen.

                          Danke!

                          Gruss Marco

                          1. Mahlzeit,

                            Zuerst mal danke für Deine Hilfe. Wird mir schon etwas klarer. Wie würde dann ein solches Mail aussehen. Könntest Du mir da ein Beispiel machen.

                            Das gab es in Teufelchens erster Antwort auf Deinen ursprünglichen Beitrag kostenlos dazu. Wer lesen kann, ist klar im Vorteil ... ;-)

                            MfG,
                            EKKi

                            --
                            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                            1. hallo Ekki

                              Ja diesen habe ich durchgelesen aber weiss nicht genau wie ich das anordnen muss...

                              ich versende ja so das mail:

                              $to = $value;
                              $subject = "Schau mal auf dertausch | friends vorbei";
                              $xtra = "From: ".$row_benutzer->vorname." ".$row_benutzer->name." <".$_POST['email'].">"."\n";
                              //$xtra .= "MIME-Version: 1.0\n".'Content-type: text/html; charset=iso-8859-1' . "\n";
                              $xtra .= "Content-Type: text/html; charset=iso-8859-1 \n MIME-Version: 1.0";

                              leider weiss ich nicht wie ich nun auch noch das plain anordnen muss.

                              sorry!

                              gruss marco

                              1. leider weiss ich nicht wie ich nun auch noch das plain anordnen muss.

                                  
                                $html = 'Dein HTML-Dokument.';  
                                $plain = 'Dein Text-Dokument.';  
                                  
                                  
                                // Eindeutige MIME-Trennzeile erzeugen  
                                do {  
                                    $trenner = mt_rand() + "pk)vweADqwef,gmsd?U/(HuiKLmZ";  
                                } until (strpos($html . $plain, $trenner) === false);  
                                  
                                  
                                // Körper zusammensetzen  
                                //   HTML-Teil  
                                $koerper = "\r\n--" . $trenner . "\r\n"; // MIME-Trennzeile  
                                $koerper .= "Content-Type: text/html; charset=iso-8859-1\r\n"; // Datentyp  
                                $koerper .= "Content-Transfer-Encoding: 8bit\r\n"; // Datenkodierung  
                                $koerper .= "\r\n"; // Kopf-Daten-Trennzeile  
                                $koerper .= $html;  
                                  
                                //   Text-Teil  
                                $koerper = "\r\n--" . $trenner . "\r\n";  
                                $koerper .= "Content-Type: text/plain; charset=iso-8859-1\r\n";  
                                $koerper .= "Content-Transfer-Encoding: 8bit\r\n";  
                                $koerper .= "\r\n";  
                                $koerper .= $plain;  
                                  
                                //   Ende  
                                $koerper = "\r\n--" . $trenner . "--\r\n";  
                                  
                                  
                                // Kopf zusammensetzen  
                                //   From:  
                                $kopf = "From: ";  
                                $kopf .= strtr($row_benutzer->vorname . " " . $row_benutzer->name, "<>\r\n", "    ");  
                                $kopf .= " <" . strtr($_POST['email'], "<>\r\n", "    ") . ">\r\n";  
                                  
                                //   MIME-Angaben  
                                $kopf .= "MIME-Version: 1.0\r\n";  
                                $kopf .= 'Content-Type: multipart/alternative; boundary="' . $trenner . '"' ."\r\n";  
                                $kopf .= "\r\n";  
                                  
                                  
                                // Post abschicken  
                                mail($empfänger, $betreff, $koerper, $kopf);  
                                
                                

                                Referenz: RFC 2046, Multipurpose Internet Mail Extensions (MIME), Part Two: Media Types

                                1. Dumm gelaufen. Beim Abschicken dachte ich noch "Hättest du das ausprobieren sollen?" und als es weg war, viel mir gleich der erste Fehler auf:

                                  $html = 'Dein HTML-Dokument.';

                                  $plain = 'Dein Text-Dokument.';

                                  // Eindeutige MIME-Trennzeile erzeugen
                                  do {
                                      $trenner = mt_rand() + "pk)vweADqwef,gmsd?U/(HuiKLmZ";
                                  } until (strpos($html . $plain, $trenner) === false);

                                    
                                  until gibt es in PHP nicht, alte Modula-2-Gewohnheit. Bei PHP heißt es while, daher:  
                                    
                                  
                                  > `} while (strpos($html . $plain, $trenner) !== false);`{:.language-php}  
                                    
                                  Eventuelle vorhandene Restfehler sind zum Selbersuchen :)  
                                  
                                  
                                  1. Hi

                                    das HTML Mail bleibt noch leer obwohl ich es noch so habe:

                                    *****************************************

                                    $html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                                    <html xmlns="http://www.w3.org/1999/xhtml">
                                    <head>
                                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                                    <title>dertausch.ch | friends - tausche dein wissen und lerne neue Leute kennen!</title>

                                    </head>

                                    <body>
                                    <table width="480" border="0" cellspacing="0" cellpadding="0" style="font-family: Arial; font-size: 12px;">
                                      <tr>
                                        <td width="128" valign="top"><img src="'.$bild.'" alt="'.$row_benutzer->vorname." ".$row_benutzer->name.'" width="100" height="126" /></td>
                                        <td width="352" valign="top"><p style="font-weight: bold;">Schau doch mal vorbei!</p>
                                         Auf dieser Plattform <a href="http://www.dertausch.ch/friends?id='.$_SESSION[id].'&act='.$zufallszahl.'">www.dertausch.ch/friends</a> hast du die Möglichkeit,
                                     dein Wissen und deine Interessen mit anderen Personen zu tauschen
                                     und dabei neue Leute kennen zu lernen.<br/><br/></td></tr>
                                    </table>
                                    </body>
                                    </html>';

                                    *****************************************

                                    Noch eine Idee? Vielen Dank!

                                    LG Marco

                                  2. Hi Teufelchen

                                    Habe es noch nicht geschafft d.h. das Mail ist immer noch leer.
                                    Etwas ist mir aufgefallen:

                                    Muss das hier nicht auch mit . vor dem = geschrieben werden:

                                    *****************************

                                    //   Text-Teil
                                    $koerper .= "\r\n--" . $trenner . "\r\n";

                                    *****************************

                                    also nicht (weil ja sonst alles gelöscht wird oben von html).

                                    *****************************

                                    //   Text-Teil
                                    $koerper = "\r\n--" . $trenner . "\r\n";

                                    *****************************

                                    Nur leider geht es auch so nicht :-)

                                    Gruss Marco

                                    1. Muss das hier nicht auch mit . vor dem = geschrieben werden:

                                      also nicht (weil ja sonst alles gelöscht wird oben von html).

                                      //   Text-Teil
                                      $koerper = "\r\n--" . $trenner . "\r\n";

                                      Vollkommen richtig, da habe ich noch einen Fehler gemacht.

                                      Nur leider geht es auch so nicht :-)

                                      Stimmt, kann auch nicht, aber den zweiten Fehler findest du bestimmt auch noch, er ist gar nicht so weit entfernt von obigem und hat mit meiner Angewohnheit zu tun, wiederkehrende Codeteile zu kopieren und nicht jedesmal neu zu tippen. Nur nicht aufgeben :-)

                                      Als allgemeiner Tipp: Wenn eine Variable offenbar nicht das enthält, was sie eigentlich enthalten müsste, oder eine Bedingung (if, while & Co.) nicht das tut, was sie tun müsste, dann ist es immer überaus hilfreich, den Code mit var_dump($unbotmäßige_variable); zu pflastern, und wenn's in jeder zweiten Zeile sein muss. Damit findet man auch die allerdümmsten Flüchtigkeitsfehler - solche wie oben.

                                  3. Hi

                                    Wow ich glaube ich habs geschafft. Bin noch am schauen. Melde mich wieder :-)

                                    Marco

                                2. Hi Teufelchen

                                  wow danke für deine bemühungen. bi den code gerade am anschauen und
                                  habe noch eine unklarheit und auch genau dort eine fehlermeldung:

                                  ***********************

                                  // Eindeutige MIME-Trennzeile erzeugen
                                  do {
                                      $trenner = mt_rand() + "pk)vweADqwef,gmsd?U/(HuiKLmZ";
                                  } until (strpos($html . $plain, $trenner) === false);

                                  ***********************

                                  Was genau soll das:

                                  "vweADqwef,gmsd?U/(HuiKLmZ";

                                  Gruss Marco

                                  1. Mahlzeit,

                                    Was genau soll das:

                                    "vweADqwef,gmsd?U/(HuiKLmZ";

                                    Auch die Antwort auf diese Frage findest Du in Teufelchens erstem Beitrag ...

                                    MfG,
                                    EKKi

                                    --
                                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                                  2. auch genau dort eine fehlermeldung:

                                    // Eindeutige MIME-Trennzeile erzeugen
                                    do {
                                        $trenner = mt_rand() + "pk)vweADqwef,gmsd?U/(HuiKLmZ";

                                    Texte verkettet man natürlich mit . und nicht mit +, Schande über mich.

                                    Weiterhin solltest du am Anfang des Skriptes eine Variable $crlf mit dem Inhalt "\r\n" definieren und alle nachfolgenden Vorkommen von \r\n durch $crlf ersetzen.
                                    Wie mir gerade in Erinnerung gerufen wurde, haben manche Mailserver Schwierigkeiten in Verbindung mit \r\n, obwohl's der vorgesehene Weg ist. Falls auf deiner Maschine ein solcher Mailserver in Aktion ist, lässt sich \r\n schnell und zentral durch \n ersetzen.

                                    Danach funktioniert dann aber auch alles. Ich habe das Skript jetzt ausprobiert, drei Fehler und ein Kompatibilitätsproblem sind ja nicht gar so schlecht für dahingeschludertes Mittagshack :-]

                                    Was genau soll das:

                                    "vweADqwef,gmsd?U/(HuiKLmZ";

                                    Das ist der magische Geheimcode, mit dem eine versteckte PHP-MIME-Flux-Kompensierschleife aktiviert wird. Ich habe Jahre gebraucht, um ihn mittels kompliziertester Reverse-Engineering-Super-Backwards-Disassemblier-Technologien zu entschlüsseln ;-)

      2. Mahlzeit,

        Ich finde das Problem einfach nicht betreffend dem HTML_TAG_BALANCE_BODY.

        Das Problem hat Teufelchen doch erläutert: Deine Email hat anscheinend mehr HTML-Inhalt als nur-Text-Inhalt und bezüglich der enthaltenen Tags relativ gesehen recht wenig Inhalt.

        Hier mal den Quelltext vielleicht hast Du noch eine Idee oder ein Tipp!

        Was soll daran irgendwelcher PHP-Code ändern?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Moin!

    Kann mir jemand helfen, wieso diese immer noch im SPAM landen.

    GMX tut das, und zwar mit dieser Zeile hier:

    X-GMX-Antispam: 5 (HTML_IMAGE_ONLY_16,HTML_MESSAGE,HTML_TAG_BALANCE_BODY,MIME_HEADER_CTYPE_ONLY,MIME_HTML_ONLY)

    Liegt das an meinem Hoster? Was kann ich noch machen?

    Es liegt an deiner Mail, die die dort angegebenen Spamkriterien aufweist.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."