php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.12.2011, 14:54  
Benutzer
 
Registriert seit: 30.11.2011
Beiträge: 31
PHP-Kenntnisse:
Anfänger
eLiTe11 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Keine Mail mit mail()

Hallo PHP.de!

Ich hab mal wieder ein mehr oder minder kleines Problem, nämlich dass ich auf einer Webseite bei der Registration wie auch beim ändern der Emailadresse einen Bestätigungscode senden will. Üblicherweise schreibe ich nicht einfach drauf los, sondern mache erstmal eine "Minimalausführung" des Skripts, die bei mir so aussieht:

PHP-Code:
<?php

    
if(isset($_POST['mail']) && $_POST['mail'] != '') {

        if(
mail($_POST['mail'],
        
$_POST['betreff'],
        
$_POST['nachricht'],
        
"From: admin@pensword.eu; Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable" )) {
        
            echo 
'Mail wurde versendet!';
        
        } else {
        
            echo 
'Es trat ein Fehler auf!';
        
        }
    
    } else {
    
        echo
        
'<form action="" method="post">
            <input type="text" name="mail" />
            <input type="text" name="betreff" />
            <input type="text" name="nachricht" />
            <input type="submit" name="senden" />
        </form>'
;
    
    }


?>
Wenn ich das nun aufrufe, eine gültige Mailadresse eingebe und auch die anderen Felder sinnvoll fülle, bekomme ich die Erfolgsmeldung zwar, allerdings kommt keine Mail bei der angegebenen Adresse an. Könnt ihr mir sagen was ich falsch mache?

Grüße, eLiTe11
eLiTe11 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.12.2011, 15:00  
Erfahrener Benutzer
 
Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse:
Anfänger
Suralc befindet sich auf einem aufstrebenden Ast
Standard

Debugge dein Script und überprüfe ob in $_POST auch wirklich das drinne steht, was du erwartest.

Ansonsten solltest du eine Mailerklasse verwenden, da du sonst früher oder später auf Probleme stoßen wirst.

http://www.robo47.net/text/38-Mail-ist-tot-es-lebe-mail
__________________
Zitat:
Zitat von nikosch Beitrag anzeigen
Naja, anscheinend spricht die Steckdose kein HTTP. LOL
Suralc ist offline   Mit Zitat antworten
Alt 24.12.2011, 15:03  
Benutzer
 
Registriert seit: 30.11.2011
Beiträge: 31
PHP-Kenntnisse:
Anfänger
eLiTe11 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von print_r($_POST);
[mail] => h.orlov@gmx.de [betreff] => die letzte [nachricht] => hängt scheinbar noch irgendwo [senden] => Senden
Aber das mit der Mailerklasse schau ich mir auch gerne mal an
eLiTe11 ist offline   Mit Zitat antworten
Alt 24.12.2011, 15:10  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Genau deshalb solltet Ihr Mailerklassen verwenden.
Es ist klar, daß die nicht versendet wird. Die Daten im Header müssen umgebrochen werden, was bei Dir nicht passiert.
Die Rückgabe von mail ist auch nicht das, was Du erwartest, schau Dir dazu das Manual nochmal an.

All diese kleinen Hürden, sind in Mailerklassen bereits gelöst!
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 24.12.2011, 15:15  
Erfahrener Benutzer
 
Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse:
Anfänger
Suralc befindet sich auf einem aufstrebenden Ast
Standard

Dein Fehler liegt außerdem wohl daran, das du deine zusätzlichen Header falsch notiert hast:

Zitat:
Jede Zeile im Header wird durch den Zeilenumbruch <CR><LF> abgeschlossen
http://de.wikipedia.org/wiki/Hyperte...Funktionsweise

bzw. Beispiel 2 im Manual zu mail()
http://php.net/manual/de/function.mail.php

Das Problem hättest du mit der Verwendung einer Mailerklasse umgehen können, obwohl dies vermutlich nicht das einzige ist.

edit: Man sollte wohl nicht auf Antworten klicken um dann den Baum fertig zu machen. Sry für den Post @Arne
__________________
Zitat:
Zitat von nikosch Beitrag anzeigen
Naja, anscheinend spricht die Steckdose kein HTTP. LOL
Suralc ist offline   Mit Zitat antworten
Alt 24.12.2011, 15:19  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Suralc
Dein Fehler liegt außerdem wohl daran, das du deine zusätzlichen Header falsch notiert hast
...genau das wollte ich ihm hiermit sagen:
Zitat:
Zitat von Arne Drews
Die Daten im Header müssen umgebrochen werden, was bei Dir nicht passiert.
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 24.12.2011, 15:20  
Benutzer
 
Registriert seit: 30.11.2011
Beiträge: 31
PHP-Kenntnisse:
Anfänger
eLiTe11 befindet sich auf einem aufstrebenden Ast
Standard

Ich danke euch für die schnelle Hilfe, besonders heute am 24.!
Ich lese mich gerade durch den Artikel den du mir geschickt hast Suralc, und versuch dann eine Klasse einzubinden. Frohes Fest noch
eLiTe11 ist offline   Mit Zitat antworten
Alt 24.12.2011, 15:22  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

@Suralc: Hauptsache der Baum ist schön geworden...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 24.12.2011, 20:36  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von eLiTe11 Beitrag anzeigen
Wenn ich das nun aufrufe, eine gültige Mailadresse eingebe und auch die anderen Felder sinnvoll fülle, bekomme ich die Erfolgsmeldung zwar, allerdings kommt keine Mail bei der angegebenen Adresse an. Könnt ihr mir sagen was ich falsch mache?
Der Returnwert von mail() besagt nur, daß sich die Funktion mit sendmail unterhalten durfte. Ob tatsächlich eine Mail abgeschickt wurde und diese ausnahmsweise nicht vom SPAM Filter des Empfängers gefressen wurde, weiß die Funktion nicht. Und gefressen wird sie spätestens dann, wenn im Header oder im Body Umlaute auftauchen:
Im Header - To: und Subject - ist ausschließlich nur US ASCII gestattet.
Der Body muß entsprechend des content-transfer-encoding kodiert werden. zB. mit base64 oder quoted-printable

BEGIN EDIT:
Weiterhin ist die maximale Zeilenbreite festgelegt: -> siehe Beitrag von lstegelitz
Als üblich werden 80 Zeichen einschließlich des CR/LF betrachtet.
-- wahrscheinlich ein Relikt aus den Zeiten 80 Zeichen * 24 Zeilen -
END EDIT

Hört sich alles kompliziert an und ist es auch. Wenn Du alle Eventualitäten im Script berücksichtigst, um RFC konforme Emails auszudünsten, wird das Script genauso fett wie eine der üblichen Mail-Klassen.

btw: ich hoffe, daß Dein Script nicht öffentlich ist, weil es sonst eine wüste SPAM Schleuder wäre.

Geändert von meikel (25.12.2011 um 16:55 Uhr).
  Mit Zitat antworten
Alt 25.12.2011, 15:19  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Weiterhin ist die maximale Zeilenbreite festgelegt:
max. 80 Zeichen einschließlich des CR/LF.
Sie sollte nicht länger als 80 Zeichen sein, aber dürfen darf sie nicht länger als 998 Zeichen sein.
Mein (zugegeben etwas älterer) PHPMailer hatte das Hard-Limit auch nicht abgefangen, mails kamen teilweise mit seltsamen Umbrüchen mitten im Wort an.

http://tools.ietf.org/html/rfc5322#section-2.1.1
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP mail() sorgt für Interal Server Error AXELB Server, Hosting und Workstations 1 18.04.2011 23:16
[Erledigt] mail() mit &lt;a herf... Link in Html Mail geht nicht!? BettinaSyn PHP Tipps 2009 11 16.05.2009 22:28
[Erledigt] Mail() und polnischer Text UTF8 verändert Sonderzeichen Wolla PHP Tipps 2008 3 21.08.2008 00:10
dateien aus verzeichnis einzeln als mail attachment versenden mathes PHP Tipps 2008 5 17.07.2008 19:45
mail() an web und gmx kampfnickel PHP Tipps 2008 12 23.09.2007 00:03
Unterschied zwischen mail() und popen(/usr/sbin/sendmail)... DonTermi PHP Tipps 2007 8 27.03.2007 13:25
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
Mail mit mail() kommt nicht an center PHP Tipps 2005-2 5 18.08.2005 13:02
Mail adresse überprüfen? PHP Tipps 2005-2 6 16.06.2005 11:53
Mit der PHP mail() Funktion eine HTMl mail verschicken? PHP Tipps 2005 6 09.05.2005 07:13
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
[Erledigt] Error Mail() function PHP Tipps 2005 3 14.04.2005 03:32
Mail versenden - Fehler 553 Anuschka PHP Tipps 2004-2 7 13.12.2004 19:54
mehrere Atachement mit HTML Mime mail class??? 18inch PHP Tipps 2004-2 1 28.11.2004 23:58
mail() - mail header PHP-Fortgeschrittene 2 28.09.2004 15:35


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum