eMail mit PHP mail()
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anhang
code
datei
disposition
dokument
empfehlen
ende
fehler
file
formular
header
mime
nachricht
pfad
start
stehen
text
transfer
type
-
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> </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> </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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
wie gibst Du den Pfad an?
Versuche mal "./pfad/dateiname.pdf".
Viele Grüße
Maxi -
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. -
Dann mach doch mal ein "./" davor...
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage