ilch Forum » Allgemein » Plauder Ecke » Mails werden nicht versendet

Geschlossen
  1. #1
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke für das Ilch Script. Ist wirklich eine tolle Sache.

    Nun zu meinen Probem: Mein Ilch versendet einfach keine Mails. Ich habe alle varianten ausprobiert aber es passiert nichts.
    Mein Priovider hat mir einen Script vorgegeben und würde das gerne in den Ilch integrieren.

    Kannn mir jemand dabei helfen?

    Gruß Jan


    <?php
    
    ### Konfiguration ###
    
    # Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
    
    # An welche Adresse sollen die Mails gesendet werden?
    $strEmpfaenger = 'janknop@web.de';
    
    # Welche Adresse soll als Absender angegeben werden?
    # (Manche Hoster lassen diese Angabe vor dem Versenden der Mail 
    ueberschreiben)
    $strFrom       = '"info@knop-vertrieb.de" 
    <support@ispone-business.de>';
    
    # Welchen Betreff sollen die Mails erhalten?
    $strSubject    = 'Feedback';
    
    # Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
    # Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
    $strReturnhtml = 'http://www.knop-vertrieb.de';
    
    # Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert 
    stehen?
    $strDelimiter  = ":\t";
    
    ### Ende Konfiguration ###
    
    if($_POST)
    {
     $strMailtext = "";
    
     while(list($strName,$value) = each($_POST))
     {
      if(is_array($value))
      {
       foreach($value as $value_array)
       {
        $strMailtext .= $strName.$strDelimiter.$value_array."\n";
       }
      }
      else
      {
       $strMailtext .= $strName.$strDelimiter.$value."\n";
      }
     }
    
     if(get_magic_quotes_gpc())
     {
      $strMailtext = stripslashes($strMailtext);
     }
    
     mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
      or die("Die Mail konnte nicht versendet werden.");
     header("Location: $strReturnhtml");
     exit;
    }
    
    ?>
    <!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="de">
        <head>
            <title>Einfacher PHP-Formmailer</title>
            <meta http-equiv="Content-Type" content="text/html; 
    charset=iso-8859-1" />
        </head>
        <body>
            <h1>Beispielformular</h1>
            <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
                <!-- Hier die eigentlichen Formularfelder eintragen. Die 
    folgenden sind Beispielangaben. -->
                <dl>
                    <dt>Ihr Name:</dt>
                    <dd><input type="text" name="Versender" /></dd>
                    <dt>Ihre E-Mail:</dt>
                    <dd><input type="text" name="E-Mail" /></dd>
                    <dt>Sie k&ouml;nnen:</dt>
                    <dd><input type="checkbox" name="kannwas[]" value="HTML" 
    />HTML <input type="checkbox" name="kannwas[]" value="PHP" />PHP</dd>
                    <dt>Sie sind:</dt>
                    <dd><input type="radio" name="sexus" value="M" />Mann <input 
    type="radio" name="sexus" value="Frau" />Frau</dd>
                    <dt>Sie m&ouml;gen:</dt>
                    <dd><select name="Browser"><option 
    value="Opera">Opera</option><option 
    value="Mozilla">Mozilla</option></select></dd>
                    <dt>Bemerkungen:</dt>
                    <dd><textarea name="Bemerkungen" rows="3" 
    cols="20">Bemerkungen</textarea></dd>
                </dl>
                <!-- Ende der Beispielangaben -->
                <p>
                <input type="submit" value="Senden" />
                <input type="reset" value="Zurücksetzen" />
                </p>
            </form>
        </body>
    </html>



    verwendete ilch Version: 1.1 P

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Funktioniert das Script den eigenständig. Wenn ja dann sollte es auch mit der Standardfunktion von Ilch funktionieren, wenn SMTP in der Konfiguration aus ist.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke für deinen Post Mairu,

    funktioniert leider nicht mit der Standardfunktion.

    Kannst du mir das Script in die Contact.php integrieren?

    Kenne mich mit php leider nicht aus.

    Gruß Jan
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also in ilch würde die icmail Funktion als Wrapper für die mail Funktion verwendet. (In der includes/func/allg.php)

    Du kannst ja mal versuchene eine alte Variante davon zu verwenden, die letztendlich nicht anderes als mail aufruft, wie dein Script.

    (Bevor du Änderungen an Dateien machst, solltest du eine Sicherung der Dateien anlegen)

    function icmail ($mail,$bet,$txt, $from = '', $html=false) {
        global $allgAr;
        if ( $from == '' ) {
            $from = $allgAr['allg_default_subject'].' <'.$allgAr['adminMail'].'>';
        }
        $from    = preg_replace ("/\015\012|\015|\012/", "", $from);
        $header  = "From: ".$from."\n";
        $header .= "MIME-Version: 1.0\n";
        $header .= "Content-Type: ".($html?"text/html":"text/plain")."; charset=\"iso-8859-1\";\n";
        $header .= "Content-Transfer-Encoding: 8bit";
    
        $mail = escape_for_email($mail);
        $bet  = escape_for_email($bet, true);
        $txt  = str_replace("\r", "\n", str_replace("\r\n", "\n", $txt));
    
        return mail ( $mail, $bet, $txt, $header);
    }


    Auf meine Frage, ob das Skript denn eigenständig funktioniert hast du auch nicht wirklich geantwortet.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke Mairu,

    Sory das Script arbeitet auch eigenständig. siehe: externer Link

    Habe deinen Vorschlag übernommen und die allg.php gesichert. Ich bekomme beim senden aber die Meldung: Der Server konnte die Mail nicht versenden, teilen sie dies ggf. einem Administrator mit.

    Ich stehe vor einer Mauer

    Gruß Jan
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja gut, also dieses Skript zu integrieren ist nicht wirklich schwer.

    Diese Datei im Ordner wunschname.php speichern und dann kann sie über index.php?wunschname aufgerufen werden.

    <?php
    /**
     * Simple mail script
     */
    defined ('main') or die ( 'no direct access' );
    
    ### Konfiguration ###
    # Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
    # An welche Adresse sollen die Mails gesendet werden?
    $strEmpfaenger = 'janknop@web.de';
    # Welche Adresse soll als Absender angegeben werden?
    # (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
    $strFrom       = '"info@knop-vertrieb.de" <support@ispone-business.de>';
    # Welchen Betreff sollen die Mails erhalten?
    $strSubject    = 'Feedback';
    # Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
    $strDelimiter  = ":\t";
    ### Ende Konfiguration ###
    
    $hmenu = 'Kontakt';
    $title = $allgAr['title'] . ' :: ' . $hmenu;
    
    $design = new design ( $title , $hmenu );
    $design->header();
    
    if (isset($_POST['mail_submit'])) {
        $strMailtext = "";
    
        while (list($strName, $value) = each($_POST)) {
            if (is_array($value)) {
                foreach ($value as $value_array) {
                    $strMailtext .= $strName . $strDelimiter . $value_array . "\n";
                }
            } else {
                $strMailtext .= $strName . $strDelimiter . $value . "\n";
            }
        }
    
        if (get_magic_quotes_gpc()) {
            $strMailtext = stripslashes($strMailtext);
        }
    
        echo $strEmpfaenger, $strSubject, $strMailtext, "From: " . $strFrom;
    //    mail($strEmpfaenger, $strSubject, $strMailtext, "From: " . $strFrom)
    //        or die("Die Mail konnte nicht versendet werden.");
    ?>
    <p>Ihr Anfrage wurde erfolgreich entgegengenommen.</p>
    <a href="index.php">Zurück zur Startseite</a>
    <?php
    } else {
    ?>
    
    <form action="" method="post">
        <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
        <dl>
            <dt>Ihr Name:</dt>
            <dd><input type="text" name="Versender" /></dd>
            <dt>Ihre E-Mail:</dt>
            <dd><input type="text" name="E-Mail" /></dd>
            <dt>Sie k&ouml;nnen:</dt>
            <dd><input type="checkbox" name="kannwas[]" value="HTML"
                    />HTML <input type="checkbox" name="kannwas[]" value="PHP" />PHP</dd>
            <dt>Sie sind:</dt>
            <dd><input type="radio" name="sexus" value="M" />Mann <input
                    type="radio" name="sexus" value="Frau" />Frau</dd>
            <dt>Sie m&ouml;gen:</dt>
            <dd><select name="Browser"><option
                        value="Opera">Opera</option><option
                        value="Mozilla">Mozilla</option></select></dd>
            <dt>Bemerkungen:</dt>
            <dd><textarea name="Bemerkungen" rows="3"
                          cols="20">Bemerkungen</textarea></dd>
        </dl>
        <!-- Ende der Beispielangaben -->
        <p>
            <input type="submit" name="mail_submit" value="Senden" />
            <input type="reset" value="Zurücksetzen" />
        </p>
    
    <?php
    }
    $design->footer();


    Dabei ist mir aufgefallen, dass die Loginbox unnötigerweise in $_POST schreibt, und sich dies mit dem Skript nicht wirklich verträgt. Falls du also die Standard loginbox verwendest, solltest du sie noch mit folgender ersetzen.

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    defined('main') or die ('no direct access');
    
    $tpl = new tpl ('user/boxen_login.htm');
    
    if (loggedin()) {
    
        if (user_has_admin_right($menu, false)) {
            $tpl->set('ADMIN', '<a class="box" href="admin.php?admin">' . $lang['adminarea'] . '</a>');
        } else {
            $tpl->set('ADMIN', '');
        }
    
        if ($allgAr['Fpmf'] == 1) {
            $erg = db_query("SELECT COUNT(id) FROM `prefix_pm` WHERE gelesen = 0 AND status < 1 AND eid = " . $_SESSION['authid']);
            $check_pm = db_result($erg, 0);
            $nachrichten_link = '<a class="box" href="index.php?forum-privmsg">' . $lang['messages'] . '</a>&nbsp;(' . $check_pm . ')<br>';
        } else {
            $nachrichten_link = '';
        }
    
        $tpl->set('SID', session_id());
        $tpl->set('NACHRICHTEN', $nachrichten_link);
        $tpl->set('NAME', $_SESSION['authname']);
        $tpl->out(0);
    } else {
        $loginName = $_POST['login_name'] ?: 'Nickname';
        $loginPassword = $_POST['login_pw'] ?: 'ääääääää';
        $regist = '';
        if ($allgAr['forum_regist'] == 1) {
            $regist = ' &nbsp; &nbsp; <a href="index.php?user-regist">Regist</a>';
        }
        $tpl->set_ar_out(array(
            'regist' => $regist,
            'wdlink' => '?' . $allgAr['smodul'],
            'PASS' => $loginPassword,
            'NAME' => $loginName
        ), 1);
    }
    unset($tpl);
    ?>
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke lächeln,

    deine login.php ist nicht ganz kompatibel. Kannst du die anpassen und das neue integrieren?.

    Gruß Jan

    <?php 
    #   Copyright by Manuel
    #
    #	Modified by Cristian Gheorghiu
    #	Support by www.cristiang.de & www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $tpl = new tpl ( 'user/boxen_login.htm' );
    
    if ( loggedin() ) {
      
      $authright = db_fetch_object(db_query("SELECT name FROM `prefix_grundrechte` WHERE id = " 
    
    . $_SESSION['authright']));
      
      if ( user_has_admin_right($menu,false) ) {
        $tpl->set ( 'ADMIN', '<br><a class="box" href="admin.php?admin">&raquo; 
    
    '.$lang['adminarea'].'</a><br>' );
      } else {
        $tpl->set ( 'ADMIN', '' );
      }
    
    	  if ( $allgAr['Fpmf'] == 1 ) {
    		  $erg = db_query("SELECT COUNT(id) FROM `prefix_pm` WHERE gelesen = 0 AND 
    
    status < 1 AND eid = ".$_SESSION['authid']);
    			$check_pm = db_result($erg,0);
    			$nachrichten_link = '<a class="box" 
    
    href="index.php?forum-privmsg">&raquo; '.$lang['messages'].'</a>&nbsp;<span 
    
    class="Stil3">('.$check_pm.')</span><br>';
    		} else {
    		  $nachrichten_link = '';
    		}
    		
    	  $erg = db_query("SELECT avatar FROM `prefix_user` WHERE id =  
    
    ".$_SESSION['authid']);
    	  $ava = db_result($erg,0);
    	  $erg = db_query("SELECT geschlecht FROM `prefix_user` WHERE id =  
    
    ".$_SESSION['authid']);
    	  $geschlecht = db_result($erg,0);
    	  
    	  if ( $ava == "" ) {
    	  	if ( $geschlecht == 1 ) {
    		  	    $ava_erg = "include/images/avatars/maennlich.jpg";
    			 } elseif ( $geschlecht == 2 ) {
    		  	    $ava_erg = "include/images/avatars/weiblich.jpg";
    		  	 } else {
    		  	    $ava_erg = "include/images/avatars/wurstegal.jpg";
    			 }
    		} else {
    		  $ava_erg = $ava;
    		}
    	  $myprofile = '<a class="box" href="index.php?user-details-'. $_SESSION['authid'] 
    
    .'">&raquo; Profil ansehen</a>';
    	  
    		$tpl->set ( 'SID' , session_id() );
    		$tpl->set ( 'NACHRICHTEN' , $nachrichten_link );
    		$tpl->set ( 'USERRANK', $authright->name );
    		$tpl->set ( 'NAME', $_SESSION['authname'] );
    		$tpl->set ( 'MYPROFIL', $myprofile );
    		$tpl->set ( 'AVATAR', $ava_erg );
        $tpl->out (0);		
    } else {
      if (empty($_POST['login_name'])) { $_POST['login_name'] = 'Nickname'; }
    	if (empty($_POST['login_pw'])) { $_POST['login_pw'] = 'ääääääää'; }
    	$regist = '';
    	if ( $allgAr['forum_regist'] == 1 ) {
    	  $regist = ' &nbsp; &nbsp; <a href="index.php?user-regist">Regist</a>';
    	}
    	$tpl->set_ar_out ( array ( 'regist' => $regist, 'wdlink' => '?'.$allgAr['smodul'], 
    
    'PASS' => $_POST['login_pw'], 'NAME' => $_POST['login_name'] ) , 1 );
    }
    unset($tpl);
    ?>
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Siggi Hall Of Fame
    Registriert seit
    08.02.2007
    Beiträge
    6.558
    Beitragswertungen
    327 Beitragspunkte
    Es geht dir um das Anzeigen von Avatar, Geschlecht etc?

    Na du hast doch eine Lösung und deine .php somit muss du sie nur zusammenfügen was kinderleicht sein sollte.

    Ihr sollt ja auch was dabei lernen (Learning by Doing) und nicht immer Ständig nur 100% Lösungen vorgelegt bekommen.
    1 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    In dem Fall kannst du den else Pfad unten komplett übernehmen, mehr habe ich nicht angepasst.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Jan68 Mitglied
    Registriert seit
    06.03.2015
    Beiträge
    114
    Beitragswertungen
    0 Beitragspunkte
    Hallo und Danke Mairu,

    habe die Loginbox geändert.

    Ein herzliches Gott befohlen. lachen

    Gruß Jan
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Plauder Ecke

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten