PHP Mails landen direkt im Spam

  • Hallo zusammen,


    ich habe auf meiner Webseite ein eigenes Formular erstellt. Dieses speichert die eingegeben Daten in eine Datenbank. Desweiteren werden 2 E-Mails versendet. Eine an mich als Webmaster und eine weitere (etwas abgeänderter Inhalt) an denjenigen der das Formular ausgefüllt hat.


    Alle Mails an mich als Webmaster landen direkt im Spamordner. Was kann ich tuen, damit dies nicht mehr der Fall ist?
    Noch zu erwähnen, die Mails gehen an eine Mailadresse die als Weiterleitung zu einem Postfach dient.


    Gruß tsp

  • Folgendermaßen sieht mein emailformular teil aus, sorry wegen den nicht ganz klaren Vairablen, habs einfach nur rauskopiert und minimal abgeändert, sollten aber selbsterklären sein.


    Wie bereits gesagt wurde, hängt die Einordnung spam / nicht spam hauptsächlich vom header der email ab.
    In meinem Fall gebe ich ausschließlich die wichtigsten Informationen im Header an, um so mehr jedoch angegeben wird um so unwahrscheinlicher wird deine email als spam deklariert.


    Die Angaben die ich im header tätige reichen aus, damit web.de diese nicht als Spam deklariert. Hängt selbstverständlcih auch sehr stark davon ab, wie kleinlich die Filter des jeweiligen Providers (bzw deine eigenen) sind.



    Ich hoffe das hilft dir ein wenig weiter der schnippsel. Entsprechen der Struktur $header .= "{key}: {value}"."/r/n"; kannst du weitere Header informationen bereitstellen.
    Auf Wikipedia findest du eine grobe übersicht zu den wichtigsten Header Parametern, Google wird noch mehr anzubieten haben. http://de.wikipedia.org/wiki/Header_(E-Mail)


    Edit: in $to steht natürlich nur dein name, wenn du das ganze auch an dich sendest... Also.. Wirst schon verstehen was gemeint ist! ^^
    Edit2: Bei dem Beispiel gehts um eine HTML email, die werden eher als Spam eingteilt als text mails, schau mal nach dem Content type...

  • Code
    $header='From: "'.$row['vorname'].' '.$row['nachname'].'" <'.$_POST['email'].'>'."\r\n".'MIME-Version: 1.0'."\r\n".'Content-Type: text/html; charset=UTF-8'."\r\n";
    				if(mail($to,$subject,$text,$header))


    Edit: zuerst falschen Headerauszug gepostet

  • Ich glaube Felix ging es jetzt nicht darum, was du in den Header geschrieben hast, sondern was im Header steht, wenn die Mail bei dir angekommen ist. Filterprogramme wie SpamAssassin fügen die Regeln, die passend waren, mit in den Header ein.
    Wenn du jetzt hier also den Header postest, können wir gucken, bei welchen Sachen es gehackt hat ;)

  • Kleiner Hinweis meinerseits: Nutze einfach eine externe Library wie phpmailer und verschicke ueber einen echten Email Account via SMTP. Dann brauchst Du dich nicht abzumuehen und den ganzen Header manuell zusammen bauen.


    Worx International Inc.


    Alternativ kommt phpmailer auch ohne SMTP aus, baut aber trotzdem fuer Dich die Email sauber zusammen.


    Falls Du ein Framework wie Symfony oder Zend nutzt, sollte dort bereits ein Email Provider bei sein.

  • Hallo,


    hier mal der Auszug aus dem Quelltext den ich mir bei Roundcube anzeigen lassen kann:


    Wenn ich den phpmailer igendwie eingebunden bekomme, dann kann ich dies gerne probieren.


    Gruß tsp

  • und was heißt dies für mich?
    Der Auszufüllende trägt ja nur seine E-Mail in das Formular ein, dies war hier im Beispiel halt freenet. Aber es ist egal was dort als Absender steht, es geht alles in den Spam, (soweit ich mich erinnere, ging auch meine eigene Adresse in den Spam und die ist hier bei netcup).

  • Hallo zusammen,


    ich habe auf meiner Webseite ein eigenes Formular erstellt. Dieses speichert die eingegeben Daten in eine Datenbank. Desweiteren werden 2 E-Mails versendet. Eine an mich als Webmaster und eine weitere (etwas abgeänderter Inhalt) an denjenigen der das Formular ausgefüllt hat.


    Du förderst damit aktiv die Verbreitung von Spam und die Emails werden korrekterweise als Spam deklariert.


    Du sendest keine Email an die Person die das Formular ausgefüllt hat, sondern an die dort hinterlegte Email-Adresse mit dem Text vom Ausfüller. Das ist ein de facto ein Open Relay was du dort betreibst. Die IP vom Server wird schnell auf Blocklisten landen.


    Tip: Fälsche nicht den Absender. Sende nicht unaufgefordert Emails anonym an Personen, die du nicht kennst.

    "Security is like an onion - the more you dig in the more you want to cry"

  • Warum sollte ich aktiv Spam verbreiten? Über dieses Forumlar wurde noch kein einziger Spam versendet.
    Dies sind alles gewollte Anmeldungen die über das Formular getätigt werden und das Formluar ist auch nur im Zeitraum von knapp 3 Monaten aktiv.

  • Ohne Header einer entsprechenden Email kann man nur Raten wo der Fehler liegt. Ein Indiz ist wie gesagt, dass du von netcup aus mit Absender freenet schickst. Das kann nicht gut gehen.

    "Security is like an onion - the more you dig in the more you want to cry"

  • Ohne Header einer entsprechenden Email kann man nur Raten wo der Fehler liegt. Ein Indiz ist wie gesagt, dass du von netcup aus mit Absender freenet schickst. Das kann nicht gut gehen.


    Kommentar Nr. 10 ist ein Auszug aus einer Mail, sind dies nicht die Headerangaben? Wenn nein, dann würde es mich freuen, wenn ich einen Tipp bekäme, welches Headerangaben in einer Mail denn sind.


    Das Formular hat bisher bei anderen Hostern bestens funktioniert. Es wird ja in dem Formluar lediglich die E-Mail eingetragen, eine Mail an mich gesendet und eine Mail an den Auszufüllenden als Bestätigung. So ganz kann ich dies nicht nachvollziehen.

  • d.h. es darf nicht so aussehen:

    PHP
    $header='From: "'.$row['vorname'].' '.$row['nachname'].'" <'.$_POST['email'].'>'."\r\n".'MIME-Version: 1.0'."\r\n".'Content-Type: text/html; charset=UTF-8'."\r\n";
    				if(mail($to,$subject,$text,$header))


    sondern so?

    PHP
    $header='From: "'.$row['vorname'].''.$row['nachname'].'"<'.$_POST['email'].'>'."".'MIME-Version: 1.0'."".'Content-Type: text/html; charset=UTF-8'."";
    				if(mail($to,$subject,$text,$header))


    Mehr Angaben wie in Post 10 habe ich nicht.

  • d.h. es darf nicht so aussehen:

    PHP
    $header='From: "'.$row['vorname'].' '.$row['nachname'].'" <'.$_POST['email'].'>'."\r\n".'MIME-Version: 1.0'."\r\n".'Content-Type: text/html; charset=UTF-8'."\r\n";
    				if(mail($to,$subject,$text,$header))


    sondern so?

    PHP
    $header='From: "'.$row['vorname'].''.$row['nachname'].'"<'.$_POST['email'].'>'."".'MIME-Version: 1.0'."".'Content-Type: text/html; charset=UTF-8'."";
    				if(mail($to,$subject,$text,$header))


    Mehr Angaben wie in Post 10 habe ich nicht.

    Die meinen Den Header wie er am ende ankommt. Bei web.de gibts beispielsweise rechts im eck ein kleinen button wo du dir die gesamte email inklusive header im plain format anschauen kannst, also nicht verfälcht durch irgendeine benutzeroberfläche.
    In dieser Ansicht siehst du oftmals auch den Grund dafür dass deine email als spam erkannt wurde.


    Auf den absender hatte ich jetzt keine acht... für den Fall, dass du möchtest, dass die leute zu freenet zurückschreiben können bastel das ganze doch einfach so:
    From: Irgendwas Formular <noreply@deine-dcomain.de>
    Reply-to: Dein Name <deine-email@freenet.de>


    Hab mir das jetzt nicht genau angeschaut... beziehe mich bloß auf die Feststellungen meiner vorredner.