Mails versenden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
anhang
code
dank
datei
disposition
empfehlen
ende
file
formular
header
http
mime
nutzer
start
stehen
text
transfer
type
url
-
Wie kann man PHP eine Mail schreiben lassen?
Ich verstehe das einfach nicht er weis nicht einmal posteingangsserver und ausgang wie funktioniert das bei lima city. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Schau hier die Anleitung an. Man braucht keinen Posteingangs/Postausgangsserver!
http://www.infos24.de/phpe/handbuch/23_php_mail.htm -
Danke . Jetzt weis ich wie das geht.
-
Da ich mit den Skript so meine Probleme hatte, will ich mal eine Lösung posten, die mir geholfen hat.
Folgende Ausgangssituation:
Ich wollte auf einer Seite ein Formular präsentieren, welches es möglich mach die Webseite einem Freund zu empfehlen.
Die eMail, welche an besagten Freund geschickt wird, soll einen Stantard Text haben, es dem Nutzer ermöglichen zusätzlichen Text einzugeben, den Nutzer zwingen eine gültige eMail-Adresse als Absender einzugeben und vor allem, soll Sie zwei PDF Dokumente mit verschicken.
Der folgende Code kann einfach innerhalb des Body in einer PHP Seite eingebunden werden (<body>CODE</body>):
#################################
<?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; } } ?>
#################################
Dieses Skript funktioniert einwandfrei!!!
Beitrag zuletzt geändert: 20.3.2010 22:15:09 von onkel0381 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage