kostenloser Webspace werbefrei: lima-city


eMail mit PHP mail()

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    onkel0381

    onkel0381 hat kostenlosen Webspace.

    Folgender Code ermöglicht das Senden einer eMail mit PHP und hängt zwei PDF Dokumente an die Mail.

    Hintergrund ist das Empfehlen einer Webseite.

    Mein Problem ist aber, dass die PDF-Dokumente im selben Ordner kiegen müssen wie das PHP-Skript.
    Wenn ich einen Pfad angebe zur Datei funktioniert das Skript nicht.

    Kann mir da jemand aushelfen?

    ################################################################################



    <?php
    
    // *** Einstellungen ***
    $Site_Name='meine-seite.tld'; // z.B. "meine-seite.tld"
    $Site_URL='http://meine-seite.tld/'; // z.B. "http://meine-seite.tld/"
    
    // Bitte ändern Sie auch den Vorgabetext (im HTML- und im PHP-Quellcode)!
    
    // #############################################################################
    $from_name=GetParam('from_name');
    $from_mail=GetParam('from_mail');
    $to_name=GetParam('to_name');
    $to_mail=GetParam('to_mail');
    $mail_text=GetParam('mail_text');
    $send=GetParam('send');
    
    $err_text='';
    if(trim($from_name)=='') $err_text.='Bitte geben Sie Ihren Namen an.<br>';
    if(trim($from_mail)=='')
      $err_text.='Bitte geben Sie Ihre E-Mail-Adresse an.<br>';
    else
      if(!ereg('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$',$from_mail))
        $err_text.='Bitte geben Sie eine gültige E-Mail-Adresse an.<br>';
    if(trim($to_name)=='') $err_text.='Bitte geben Sie den Namen des Empfängers an.<br>';
    if(trim($to_mail)=='')
      $err_text.='Bitte geben Sie die E-Mail-Adresse des Empfängers an.<br>';
    else
      if(!ereg('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$',$to_mail))
        $err_text.='Bitte geben Sie eine gültige E-Mail-Adresse an.<br>';
    
    if(strlen($mail_text)>1000) {
      $mail_text=substr($mail_text,0,1000).'... (Text wurde gekürzt!)';
    }
    $from_name=str_replace(chr(34),"''",$from_name);
    $to_name=str_replace(chr(34),"''",$to_name);
    $from_name=stripslashes($from_name);
    $from_mail=stripslashes($from_mail);
    $to_name=stripslashes($to_name);
    $to_mail=stripslashes($to_mail);
    $mail_text=stripslashes($mail_text);
    
    if(($send=='1') && ($err_text!='')){
      echo '<p><big><b>Fehler:</b></big><br>';
      echo $err_text.'</p>';
    }
    
    if(($send!='1') || ($err_text!='')){
    ?>
    
    
    
    <form action="<?php echo GetParam('PHP_SELF','S'); ?>" method="post">
    <table border=0 cellspacing=2 cellpadding=0 width=100%>
    <tr><td nowrap align=right>Ihr Name:</td><td>&nbsp;</td>
    <td width=100%><input type="text" name="from_name" size=50 maxlength=120 value="<?php echo $from_name ?>"></td></tr>
    <tr><td nowrap align=right>Ihr E-Mail-Adresse:</td><td></td>
    <td width=100%><input type="text" name="from_mail" size=50 maxlength=120 value="<?php echo $from_mail ?>"></td></tr>
    <tr><td nowrap align=right>Empfehlen an (Name):</td><td>&nbsp;</td>
    <td width=100%><input type="text" name="to_name" size=50 maxlength=120 value="<?php echo $to_name ?>"></td></tr>
    <tr><td nowrap align=right>Empfehlen an (E-Mail):</td><td></td>
    <td width=100%><input type="text" name="to_mail" size=50 maxlength=120 value="<?php echo $to_mail ?>"></td></tr>
    
    
    <tr><td nowrap align=right valign=top>Ihr Text:<br><i>(max. 1.000 Zeichen)</i></td><td></td>
    <td width=100%><textarea cols=40 rows=6 name="mail_text"><?php echo $mail_text ?></textarea></td></tr>
    
    
    <tr><td nowrap align=right valign=top id="formtext">Vorgegebener Text:</td><td></td>
    
    <!-- START Vorgabetext -->
    <td width=100%>
    
    Hier eine der Text, welcher unter der Nachricht des Nutzers stehen soll.<br>
    <br>
    Weitere Infos finden Sie in den pdf-Dateien im Anhang und unter:<br>
    <? echo $Site_URL; ?><br>
    <br>
    Vielen Dank<br>
    <br>
    <br>
    Die Webseitenbetreiber<br>
    <br>
    Vorname Name<br>
    <br>
    </td></tr>
    <!-- ENDE Vorgabetext -->
    
    
    <tr><td></td><td></td><td>
    <input type="hidden" value="1" name="send">
    <input type="submit" value="Nachricht versenden" name="submit">
    </td></tr>
    
    
    </table>
    </form>
    
    
    
    
    <?php
    }else{
      
      $mail_deftext="$mail_text";
      if($mail_text!="") $mail_deftext.="\n\n";
    
      // START Vorgabetext
      $mail_deftext.="Hier eine der Text, welcher unter der Nachricht des Nutzers stehen soll.";
      $mail_deftext.="\n\n";
      $mail_deftext.="Weitere Infos finden Sie in den pdf-Dateien im Anhang und unter:\n$Site_URL\n\n";
      $mail_deftext.="Vielen Dank\n\n\n";
      $mail_deftext.="Die Webseitenbetreiber\n\n";
      // ENDE Vorgabetext
    
      $file = "names_des_pdf_dokuments.pdf";
      $file_name = "AngezeigterName.pdf"; //wie_soll_der_anhang_heissen.pdf
    
      $file2 = "names_des_zweiten_pdf_dokuments.pdf";
      $file_name2 = "AngezeigterName2.pdf";
    
      $header="From: $from_name <$from_mail>\n";
      $header.="Reply-To: $from_mail\n";
    
      $boundary = strtoupper(md5(uniqid(time())));
      $header.= "MIME-Version: 1.0";
      $header.= "\nContent-Type: multipart/mixed; boundary=$boundary";
      $header.= "\n\nThis is a multi-part message in MIME format";
      $header.= "\n--$boundary";
      $header .= "\nContent-Type: text/plain";
      $header .= "\nContent-Transfer-Encoding: 8bit";
    
    
      $header .= "\n\n$mail_deftext";
      $file_content = fread(fopen($file,"r"),filesize($file));
      $file_content = chunk_split(base64_encode($file_content));
      
    
      $header .= "\n--$boundary";
      $header .= "\nContent-Type: application/octetstream; name=\"$file_name\"";
      $header .= "\nContent-Transfer-Encoding: base64";
      $header .= "\nContent-Disposition: attachment; filename=\"$file_name\"";
      $header .= "\n\n$file_content";
      $header .= "\n--$boundary";
    
      $file_content2 = fread(fopen($file2,"r"),filesize($file2));
      $file_content2 = chunk_split(base64_encode($file_content2));
      $header .= "\nContent-Type: application/octetstream; name=\"$file_name2\"";
      $header .= "\nContent-Transfer-Encoding: base64";
      $header .= "\nContent-Disposition: attachment; filename=\"$file_name2\"";
      $header .= "\n\n$file_content2";
      $header .= "\n";
    
      
      $mail_date=gmdate("D, d M Y H:i:s")." GMT";
      $send=0;
      if(@mail("$to_name <$to_mail>","$from_name bittet Sie um Mithilfe",$mail_deftext,$header)){
        echo "<p><b>Ihre E-Mail wurde abgesendet.</b></p>";
          echo "<p>Danke, dass Sie $Site_Name weiterempfohlen haben!</p>";
        echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
      }else{
        echo "<p id=warn><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
        echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail&to_name=$to_name&to_mail=$to_mail&mail_text=".urlencode($mail_text)."\">Zurück zum Formular</a></p>";
      }
    }
    
    function GetParam($ParamName, $Method = "P", $DefaultValue = "") {
      if ($Method == "P") {
        if (isset($_POST[$ParamName])) return $_POST[$ParamName]; else return $DefaultValue;
      } else if ($Method == "G") {
        if (isset($_GET[$ParamName])) return $_GET[$ParamName]; else return $DefaultValue;
      } else if ($Method == "S") {
        if (isset($_SERVER[$ParamName])) return $_SERVER[$ParamName]; else return $DefaultValue;
      }
    }
    ?>



    ################################################################################


    Beitrag zuletzt geändert: 20.3.2010 22:12:42 von onkel0381
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    wie gibst Du den Pfad an?
    Versuche mal "./pfad/dateiname.pdf".

    Viele Grüße
    Maxi
  4. Hast du den Pfad relativ mit "../" angegeben oder wie?
    Beispiel dazu wie der Pfad gemacht wurde wäre ganz nett.
    Ansonsten seh ich keine Fehler, die das verursachen könnten.
  5. Autor dieses Themas

    onkel0381

    onkel0381 hat kostenlosen Webspace.

    Ich hab den Pfad relativ zur Datei angegeben:

    file/name_des_pdf.pdf

  6. Dann mach doch mal ein "./" davor...
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!