[PHP] Formular schickt keine Emails

Dieses Thema im Forum "Webentwicklung" wurde erstellt von matze-pe, 23. Dezember 2009 .

  1. 23. Dezember 2009
    Formular schickt keine Emails

    Hallo,

    ich soll für einen Kumpel ein Formular erstellen. Habe es über einen Generator erstellt.
    Aber irgendwie kommen keine Emails aus dem Formular aus an. Habe das Ding auf zwei verschiedenen Webhostern probiert. (CW-Surf und Funpic)

    Wisst ihr vllt. woran das liegt?

    Mfg
    Matze

    PHP:
    <? php
    error_reporting
    ( E_ALL );
    $error  false ;
    $errors  = array();
    $receiver  'gana@trash-mail.com' ;

    function 
    check_email  ( $string ) {
        
    // RegEx created by Myle Ott, found at regexlib.com
        
    return  preg_match ( '/^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$/i' $string );
    }

    function 
    check_onlynumbers  ( $string ) {
        return 
    preg_match ( '/^[0-9,.]{1,}$/' $string );
    }

    function 
    check_onlyletters  ( $string ) {
        return 
    preg_match ( '/^[a-zA-ZäöüÄÖÜß]{1,}$/' $string );
    }

    function 
    send_email  ( $subject $body $receiver $html  1 ) {
        if (
    $html  !=  1 ) {
            
    $body  str_replace ( '<br />' "\n" $body );
            
    $body  str_replace ( '<br>' "\n" $body );
            
    $body  strip_tags ( $body );
        }

        
    $subject  str_replace ( '\n' '' $subject );
        
    $subject  str_replace ( '\r' '' $subject );

        if (
    $html ) {
            
    $header     'MIME-Version: 1.0'  "\n" ;
            
    $header  .=  'Content-type: text/html; charset=iso-8859-15' . "\n" ;
            
    $header  .=  'From: ' . $receiver . ' <' . $receiver . '>' . "\n" ;
        } else {
            
    $header     'MIME-Version: 1.0'  "\n" ;
            
    $header  .=  'From: ' . $receiver . ' <' . $receiver . '>' . "\n" ;
        }

        if (
    mail ( $receiver $subject $body $header )) {
            return 
    true ;
        } else {
            return 
    false ;
        }
    }

    function 
    array_stripslashes (& $var ) {
        if(
    is_string ( $var )) {
            
    $var  stripslashes ( $var );
        } else {
            if(
    is_array ( $var ))
                foreach(
    $var  as  $key  =>  $value )
                    
    array_stripslashes ( $var [ $key ]);
        }
    }

    if(
    get_magic_quotes_gpc ()){
      
    array_stripslashes ( $_GET );
      
    array_stripslashes ( $_POST );
      
    array_stripslashes ( $_REQUEST );
      
    array_stripslashes ( $_COOKIE );
    }

    if (!empty(
    $_POST )) {
        
    // Prüfung für das Feld "Schule, Freunde, Haus, Hobbys, Souvenir"
        
    $errors [ 'Augustin' ] =  null ;    if (empty( $_POST [ 'Augustin' ])) {
            
    $error  true ;
            
    $errors [ 'Augustin' ] =  ' class="error"' ;    }

        
    // Prüfung für das Feld "Schule, Freunde, Haus,"
        
    $errors [ 'Theodor' ] =  null ;    if (empty( $_POST [ 'Theodor' ])) {
            
    $error  true ;
            
    $errors [ 'Theodor' ] =  ' class="error"' ;    }

        
    // Prüfung für das Feld "Schule, Freunde, Souvenir"
        
    $errors [ 'Dominique' ] =  null ;    if (empty( $_POST [ 'Dominique' ])) {
            
    $error  true ;
            
    $errors [ 'Dominique' ] =  ' class="error"' ;    }

        
    // Prüfung für das Feld "Freunde, Schule, Wohnung"
        
    $errors [ 'Mandy' ] =  null ;    if (empty( $_POST [ 'Mandy' ])) {
            
    $error  true ;
            
    $errors [ 'Mandy' ] =  ' class="error"' ;    }

        
    // Prüfung für das Feld "Schule, Freunde, Wohnort"
        
    $errors [ 'Kevin' ] =  null ;    if (empty( $_POST [ 'Kevin' ])) {
            
    $error  true ;
            
    $errors [ 'Kevin' ] =  ' class="error"' ;    }

    }
        
    $_textarea_Augustin  = (!empty( $_POST [ 'Augustin' ]) ?  htmlspecialchars ( $_POST [ 'Augustin' ],  ENT_QUOTES 'iso-8859-15' ) :  null );

        
    $_textarea_Theodor  = (!empty( $_POST [ 'Theodor' ]) ?  htmlspecialchars ( $_POST [ 'Theodor' ],  ENT_QUOTES 'iso-8859-15' ) :  null );

        
    $_textarea_Dominique  = (!empty( $_POST [ 'Dominique' ]) ?  htmlspecialchars ( $_POST [ 'Dominique' ],  ENT_QUOTES 'iso-8859-15' ) :  null );

        
    $_textarea_Mandy  = (!empty( $_POST [ 'Mandy' ]) ?  htmlspecialchars ( $_POST [ 'Mandy' ],  ENT_QUOTES 'iso-8859-15' ) :  null );

        
    $_textarea_Kevin  = (!empty( $_POST [ 'Kevin' ]) ?  htmlspecialchars ( $_POST [ 'Kevin' ],  ENT_QUOTES 'iso-8859-15' ) :  null );

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
    <title>Umfraget</title>

    <link rel="stylesheet" type="text/css" href="css.css">
    </head>
    <body>
    <?php
    if ( $error  || empty( $_POST )) { ?>
    <form action="<?php  echo  htmlspecialchars ( $_SERVER [ 'PHP_SELF' ],  ENT_QUOTES 'iso-8859-15' );  ?>" method="post">
    <fieldset>
    <legend>Umfrage Namensherkunft</legend>
    <div class="formulargenerator-4webmaster">
    <?php  if ( $error ) {  ?>
    <div class="error_msg">Bitte alle mit * markierten Felder ausfüllen.</div>
    <?php  ?><label for="Augustin"<?php  echo !empty( $errors [ 'Augustin' ]) ?  $errors [ 'Augustin' ] :  null  ?>>Augustin*</label>
    <textarea tabindex="1" id="Augustin" name="Augustin" rows="5" cols="20"><?php  echo  $_textarea_Augustin ?></textarea>
    <label for="Theodor"<?php  echo !empty( $errors [ 'Theodor' ]) ?  $errors [ 'Theodor' ] :  null  ?>>
    Theodor *</label>
    <textarea tabindex="2" id="Theodor" name="Theodor" rows="5" cols="20"><?php  echo  $_textarea_Theodor ?></textarea>
    <label for="Dominique"<?php  echo !empty( $errors [ 'Dominique' ]) ?  $errors [ 'Dominique' ] :  null  ?>>
    Dominique *</label>
    <textarea tabindex="3" id="Dominique" name="Dominique" rows="5" cols="20"><?php  echo  $_textarea_Dominique ?></textarea>
    <label for="Mandy"<?php  echo !empty( $errors [ 'Mandy' ]) ?  $errors [ 'Mandy' ] :  null  ?>>
    Mandy *</label>
    <textarea tabindex="4" id="Mandy" name="Mandy" rows="5" cols="20"><?php  echo  $_textarea_Mandy ?></textarea>
    <label for="Kevin"<?php  echo !empty( $errors [ 'Kevin' ]) ?  $errors [ 'Kevin' ] :  null  ?>>
    Kevin *</label>
    <textarea tabindex="5" id="Kevin" name="Kevin" rows="5" cols="20"><?php  echo  $_textarea_Kevin ?></textarea>
    <div style="text-align: center; margin: 5px;">
        <input type="submit" value="Absenden" />
    </div>
    </fieldset>
    </form>
    <?php
    } else {
        
    $body  '' ;
        
    $body  .=  'Augustin:<br>' . htmlspecialchars (!empty( $_POST [ 'Augustin' ]) ?  $_POST [ 'Augustin' ] :  '' ENT_QUOTES 'iso-8859-15' ). '<br><br>' ;
        
    $body  .=  'Theodor:<br>' . htmlspecialchars (!empty( $_POST [ 'Theodor' ]) ?  $_POST [ 'Theodor' ] :  '' ENT_QUOTES 'iso-8859-15' ). '<br><br>' ;
        
    $body  .=  'Dominique:<br>' . htmlspecialchars (!empty( $_POST [ 'Dominique' ]) ?  $_POST [ 'Dominique' ] :  '' ENT_QUOTES 'iso-8859-15' ). '<br><br>' ;
        
    $body  .=  'Mandy:<br>' . htmlspecialchars (!empty( $_POST [ 'Mandy' ]) ?  $_POST [ 'Mandy' ] :  '' ENT_QUOTES 'iso-8859-15' ). '<br><br>' ;
        
    $body  .=  'Kevin:<br>' . htmlspecialchars (!empty( $_POST [ 'Kevin' ]) ?  $_POST [ 'Kevin' ] :  '' ENT_QUOTES 'iso-8859-15' ). '<br><br>' ;
        if(
    send_email ( 'Umfrage Namensherkunft' $body $receiver )) {
            
    ?>
            <h1>Umfrage Namensherkunft</h1>
            <p>Vielen Dank für Ihre Abstimmung.</p>
            <?
        
    } else {
            
    ?>
            <h1>Umfrage Namensherkunft</h1>
            <p>Das Formular konnte leider nicht abgesendet werden. Bitte versuchen Sie es später noch einmal.</p>
            <?
        
    }
    }
    ?></body>
    &nbsp;</html>
     
  2. 23. Dezember 2009
    AW: Formular schickt keine Emails

    Bei mir funktioniert es. Du hast wohl keinen Mailserver. Ich kenn jetzt leider die Provider nicht, aber ich geh mal davon aus, dass du eben dort keinen zur Verfügung hast.
     
  3. 23. Dezember 2009
    AW: Formular schickt keine Emails

    Kennst du einen guten kostenlosen Provider mit Mailserver?
    Ich hatten auf den beiden Servern jeweils ein CMS installiert. Dort hat die KOntaktformularfunktion auch funktioniert.
     
  4. 23. Dezember 2009
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Formular schickt keine Emails

    Leider nicht, sorry, ich benutze keinen kostenlosen Provider.
    Ich weiß nur, dass bei one.com es echt sehr günstige Server gibt (sehe grade zur Zeit 1 Jahr gratis), bin selbst nicht dort, aber für niedrige Bedürfnisse ist es sicher nicht schlecht.
    Ich weiß halt nur, dass aufwändigere Webanwendungen wie TYPO3 nicht sehr gut auf one.com laufen (zumindest bei den günstigen Paketen).

    Ansonsten gibts ja hier im Forum eine Liste:
    [Webhosting] Free-Webspace / Free-Hoster - RR:Board
     
  5. 23. Dezember 2009
    AW: Formular schickt keine Emails

    Lass in der Mail den Absender mal weg, freehoster blocken emails meist gleich, wenn der Absender auf eine andere Domain zb. auflöst.
     
  6. 23. Dezember 2009
    AW: Formular schickt keine Emails

    Da ist doch kein Absendername oder Emailadressfeld?!
     
  7. 23. Dezember 2009
    AW: Formular schickt keine Emails

    PHP:
    $header  .=  'From: ' . $receiver . ' <' . $receiver . '>' . "\n" ;
    einfach mal beide Einträge dort auskommentieren
    PHP:
    //$header .= 'From: '.$receiver.' <'.$receiver.'>'."\n";
     
  8. 23. Dezember 2009
    AW: Formular schickt keine Emails

    Habe das mal versucht.
    Habe noch zwei weitere Hoster benutzt.
    Aber irgendwie will dieses scheiß Sript nicht laufen...
     
  9. 23. Dezember 2009
    AW: Formular schickt keine Emails

    probiere mal eine email an dich selber zu senden. wenn in spätestens 2 min nichts ankommt, dann ist diese funktion vom hoster gesperrt.

    PHP:
    <? php
    mail
    ( 'deine@mail.com' 'Mein Betreff' 'das ist ein text' );
    ?>
     
  10. 23. Dezember 2009
    AW: Formular schickt keine Emails

    habe keine einzige zuzrückbekommen :angry:
     
  11. 24. Dezember 2009
    AW: Formular schickt keine Emails

    So bisschen gegooglet funpic.de hat seit Monaten probleme mit dem Mail-Server.
    Würd mal im CW-Surf Forum nachschaun ob da ein ähliches problem vorliegt.. Das die Mailfunktion von Freehostern gesperrt wird ist mir nicht bewusst.. Noch nie gehabt.
     
  12. 24. Dezember 2009
    AW: Formular schickt keine Emails

    Hast Du vllt. eine Freehoster-Adresse für mich, bei denen die Mailfunktion funktioniert?
    Danke
    und Gruß
    Matze

    Edit:
    gibt es noch eine andere Möglichkeit ausser mail() ein solches Formular (ohne Outlook etc.) zu versenden?
     
  13. 24. Dezember 2009
    AW: Formular schickt keine Emails

    Die Frage ist was du benötigst. Ob PHP5 oder PHP4 ob MySQL, darf er Werbung haben ect. ansich sollte jeder Freehoster mail() unterstützen. Wahlweise einfach mal bei google nach Freehostern suchen und sich einfach mal ein Account machen. Schau dir ansonsten mal Pytal an. Hab ich früher immer gute Erfahrungen mit gemacht.


    Ansonsten gibt es aber leider keine andere Möglichkeit eine E-Mail zu verschicken jedenfalls nicht über php. Mit Perl zum beispiel wäre das wieder was anderes.
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.