tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
267
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    projumper projumper ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    60
    Hallo @ all,

    ich habe ein merkwürdiges Problem und hoffe auf Eure Hilfe.

    Ich habe ein Kontaktformular geschrieben, welches auch wunderbar funktioniert. Nur ist mir aufgefallen das nicht alle Emails bei den Empfängern ankommen.

    Das Problem habe ich eingegränzt auf ModeRewrite.

    Wenn ich einen normalen Links habe:

    http://www.meinedomain.de/front_cont...3&kunde=muster

    oder

    http://www.meinedomain.de/front_content.php?idart=63

    kommen alle Emails an. Sobald das MR hinzukommt:

    http://www.meinedomain.de/kontaktformular oder http://kunde1.meinedomain.de/kontaktformular

    kommen nicht mehr alle an. Undzwar ist hier folgende Bessonderheit:

    An die Domain kann ich folgendes ran hängen http://kunde1.meinedomain.de/kontaktformular das wird umschrieben auf http://www.meinedomain.de/front_cont...3&kunde=kunde1 oder www.meinedomain.de/kontaktformular das wird umschrieben auf http://www.meinedomain.de/front_content.php?idart=63

    und sobald eine "subdomain" bei dem ModeRewrite Link mit angegeben wird kommen nicht alle Emails an.

    Weiss jemand woran das liegen kann?

    mfg projumper
     

  2. #2
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Zitat Zitat von projumper Beitrag anzeigen
    Sobald das MR hinzukommt:
    http://www.meinedomain.de/kontaktformular oder http://kunde1.meinedomain.de/kontaktformular
    kommen nicht mehr alle an. Undzwar ist hier folgende Bessonderheit:
    An die Domain kann ich folgendes ran hängen http://kunde1.meinedomain.de/kontaktformular das wird umschrieben auf http://www.meinedomain.de/front_cont...3&kunde=kunde1 oder www.meinedomain.de/kontaktformular das wird umschrieben auf http://www.meinedomain.de/front_content.php?idart=63
    Wie soll Dir denn jemand was dazu sagen wenn keiner weiß wie der Quelltext aussieht, mit der die Post verschickt wird? Hier kann man wieder nur vermuten...

    Kommt vielleicht nach mod_rewrite die idart=63 nicht an weil das die Empfänger ID ist und auf jeden Fall benötigt wird, oder fehlt im Sendescript die Variable "Kunde"? Man weiß es eben nicht...
     

  3. #3
    projumper projumper ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    60
    Hallo,

    welchen Queltext soll ich Posten? Es funktioniert ja alles! Nur manche Emails kommen nicht an!

    Ich habe das Problem jetzt gelöst indem ich in die mail Funktion den 5 Parameter ran gehangen habe.

    Code :
    1
    
    mail($mail, $subject, $message, $from, "-f bla@bla.de");

    Jetzt kommen alle Emails an. Nur ist das Natürlcih sehr merkwürdig. Wo ist den der unterscheid für die mail Funktion zwischen:

    http://kunde1.meinedomain.de/kontaktformular und
    http://www.meinedomain.de/front_cont...3&kunde=kunde1

    mfg

    projumper
     

  4. #4
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Zitat Zitat von projumper Beitrag anzeigen
    Jetzt kommen alle Emails an. Nur ist das Natürlcih sehr merkwürdig. Wo ist den der unterscheid für die mail Funktion zwischen:
    http://kunde1.meinedomain.de/kontaktformular und
    http://www.meinedomain.de/front_cont...3&kunde=kunde1
    Der Unterschied ist von erster Verknüpfung:
    "Der Server unter kunde1.meinedomain.de konnte nicht gefunden werden."
    zur zweiten Verknüpfung:
    "Error 404 - Not found"

    Was hast Du wo angehangen? Wie sah das vorher aus? Wie sieht das Sendescript aus, welches nicht funktioniert? Welche Fehlermeldungen gibt es?
     

  5. #5
    projumper projumper ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    60
    Hallo,

    also die Links sind ausgedacht. Angehangen habe ich den Parameter "-f" in der mail funktion.

    vorher:

    Code :
    1
    
    mail($mail, $subject, $message, $from);

    nacher:

    Code :
    1
    
    mail($mail, $subject, $message, $from, "-f bla@bla.de");

    DAs Scriptfunktioniert und bringt keine Fehler, den es kammen nur manche Emails nicht an. Zu den Error Logs hatte ich leider keinen Zugang.

    Nach dem ich den "-f" Parameter angehangen habe kammen alle an. Die Links sind gleich, nur das der eine mit MR "bearbeitet" wurde.

    mfg

    projumper

    Um das Problem zu verdeutlcihen:

    Wenn man über diesen Link (http://www.meinedomain.de/front_cont...3&kunde=kunde1) reingekommen ist zu dem Formular. Hat diese Zeile:

    Code :
    1
    
    mail($mail, $subject, $message, $from);

    funktioniert. Alle Emails wurde auch zugestellt.

    Wenn man über diesen Link (http://kunde1.meinedomain.de/kontaktformular) reingekommen ist zu dem Formular. Hat diese Zeile:

    Code :
    1
    
    mail($mail, $subject, $message, $from);

    funktioniert ABER nicht alle Emails wurde zu gestellt.
    Erst nach dem ich die Code Zeile ergänzt habe um den "-f" Parameter kammen ALLE Emails an.

    Deswegen die Frage: Warum unterscheidet die mail Funktion wie man das Kontaktformular aufgerufen hat?

    mfg

    projumper
     

  6. #6
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Zitat Zitat von projumper Beitrag anzeigen
    also die Links sind ausgedacht. Angehangen habe ich den Parameter "-f" in der mail funktion.
    Auszug aus manual/de/function.mail
    Um eine E-Mail zu senden, muss die E-Mail einen From-Header enthalten. Dies kann entweder durch Setzen eines additional_headers -Parameters oder durch Setzen eines Standardwertes in der php.ini geschehen.
    Falls dies nicht geschieht, wird eine Fehlermeldung ähnlich wie Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing ausgegeben. Der From: Header setzt unter Windows auch den Return-Path: Header.
    Wenn E-Mails nicht ankommen, versuchen Sie bitte, nur das LF-Zeichen (\n) zu verwenden. Einige UNIX-MTAs (mail transfer agents) ersetzen leider LF durch CRLF (\r\n) automatisch (wodurch das CR-Zeichen verdoppelt wird, wenn CRLF verwendet wird). Dies sollte aber nur in Ausnahmefällen geschehen, da es gegen » RFC 2822 verstößt.

    vorher:
    Code :
    1
    
    mail($mail, $subject, $message, $from);
    nacher:
    Code :
    1
    
    mail($mail, $subject, $message, $from, "-f bla@bla.de");
    Nach dem ich den "-f" Parameter angehangen habe kammen alle an. Die Links sind gleich, nur das der eine mit MR "bearbeitet" wurde.
    Das legt die Vermutung nahe, das teilweise der From-Header fehlt.
    Deswegen die Frage: Warum unterscheidet die mail Funktion wie man das Kontaktformular aufgerufen hat?
    Das passiert wohl nur, wenn Du das so programmiert hast.
    Mit Fehlermeldungen meinte ich übrigens nicht die Fehlerprotokolle, sondern:
    Rückgabewerte

    mail () gibt TRUE zurück, wenn die E-Mail erfolgreich für den Versand akzeptiert wurde, sonst FALSE.
     

  7. #7
    projumper projumper ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    60
    Das passiert wohl nur, wenn Du das so programmiert hast.
    das ist das selbe modul, ich habe keine 2 module für mr und einmal für ohne.

    Code :
    1
    
    mail($mail, $subject, $message, $from, "-f bla@bla.de");

    in der variable $from ist der header enthalten. "-f" habe ich zusätzlich hinzugefügt.

    Mit Fehlermeldungen meinte ich übrigens nicht die Fehlerprotokolle, sondern:
    Rückgabewerte
    Es gibt keine Fehler, keine Warnings. Das Modul Funktioniert ohne Fehler. Rückgabewert von der mail() ist TRUE

    Ich stelle mal die Frage anders:

    Reagiert die Funktion mail() bei unterschiedlichen Links anders? Haben die "EingangsLinks"(also die Links mit denen das Kontaktformular aufruft ) Einfluss auf den Header oder sonstige Sachen?

    mfg

    projumper
     

  8. #8
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Nochmal:
    PHP-Code:
    <?
    if (mail('info@localhost.de''Betreff''Nachricht'))
      echo 
    'OK';
    else
      echo 
    'Fehler';
    ?>
    Das sind die Mindestanforderungen an mail(), wenn in der php.ini sendmail_from gesetzt ist.
    Wenn nicht, muß der Header from: manuell gesetzt werden.
    PHP-Code:
    <?
    if (mail('info@localhost.de''Betreff''Nachricht''from: info@localhost.de'))
      echo 
    'OK';
    else
      echo 
    'Fehler';
    ?>
    Jetzt können natürlich alle 3 bzw. 4 Parameter durch Variablen ersetzt werden, dabei ist es völlig wurscht von wo die Seite aufgerufen wird, Hauptsache die PARAMETER sind EXISTEND und GÜLTIG!

    Du kannst das leicht testen, indem Du z. B. das zweite Beispiel mit Deiner Email ersetzt, alles andere so lässt und die Mailfunktion von den verschiedenen Seiten aus aufrufst.
    Sollte das Ergebnis TRUE sein und eine Mail nicht ankommen liegt die Ursache nicht im PHP Quelltext für diese Mailfunktion.
     

  9. #9
    projumper projumper ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    60
    Sollte das Ergebnis TRUE sein und eine Mail nicht ankommen liegt die Ursache nicht im PHP Quelltext für diese Mailfunktion.
    Das Ergebnis ist TRUE, wie bereits oben mehrmals geschrieben.
     

  10. #10
    Cluster Cluster ist offline Mitglied Bronze
    Registriert seit
    Jun 2007
    Beiträge
    27
    Evtl einfach mal in die Logdateien vom Mailserver schaun was da steht bei den Mails die nicht ankommen, meist steht dann schon drin warum.
    Geändert von Cluster (04.09.09 um 18:33 Uhr)
     

  11. #11
    projumper projumper ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    60
    Evtl einfach mal in die Logdateien vom Mailserver schaun was da steht bei den Mails die nicht ankommen, meist steht dann schon drin warum.
    Da hast Du recht, das wäre die einfachste Möglichkeit. Leider habe ich keine Möglichkeit die Logs einzusehen.
     

Ähnliche Themen

  1. Umlaute in E-Mails mit mail()
    Von philishake im Forum PHP
    Antworten: 5
    Letzter Beitrag: 16.07.08, 14:59
  2. Antworten: 2
    Letzter Beitrag: 03.02.08, 12:15
  3. Mails versenden mit System.Net.Mail
    Von Codeknecht im Forum ASP
    Antworten: 1
    Letzter Beitrag: 04.12.07, 12:16
  4. mail() --> Mails werden nicht gesendet
    Von Miraculixx im Forum PHP
    Antworten: 12
    Letzter Beitrag: 22.03.07, 22:16
  5. Frage zu html Mails mit mail ()
    Von splat im Forum PHP
    Antworten: 10
    Letzter Beitrag: 05.01.05, 16:28