07. maj 2004 - 09:53
Der er
31 kommentarer og 1 løsning
email script virker ikke?
Hej med jer, jeg har et script som jeg skal bruge til nedenstående form, problemet er blot at den viser den har vedhæftet filen, men man kan ikke se clipsen og dermed åbne noget som helst. <form action="mail.php" method="post" enctype="multipart/form-data" name="form1"> <div align="center"> <p align="center">Dit navn: <input name="navn" type="text" id="navn3" size="40"> </p> <p align="center">Din e-mail: <input name="mail" type="text" id="mail" size="40"> </p> <p align="center"> <textarea name="besked" cols="40" rows="7" id="besked"></textarea> </p> <p align="center">vedhæft billede: <input type="file" name="file"> </p> <p align="center"> <input type="submit" name="Submit" value="send"> </p> </div> </form> Her er scriptet der skal sende vedhæftede filer med emailen. mail.php <?php $to = 'din@email.dk'; $subject = 'Emne'; $textmail = ''; foreach($_POST as $key => $val ) { if( $key != 'Submit' && !empty($val) ) { $textmail .= "$key: $val\n"; } } $encoded = ''; if( isset($_FILES['file']) && isset( $_FILES['file']['tmp_name']) ) { $content = file_get_contents($_FILES['file']['tmp_name']); $encoded = chunk_split(base64_encode($content)); } // Lav mail $boundary = uniqid(""); $header = array(); $header[] = "MIME-Version: 1.0"; $header[] = "Content-Type: multipart/alternative; boundary=\"$boundary\""; $header[] = "Content-Transfer-Encoding: 7bit"; $body = array(); $body[] = "--$boundary"; $body[] = "Content-Type: text/plain; charset=\"iso-8859-1\""; $body[] = "Content-Transfer-Encoding: 7bit"; $body[] = ''; $body[] = $textmail; if(! empty($encoded)) { $body[] = "--$boundary"; $body[] = "Content-Type: " . $_FILES['file']['type'] . ";"; $body[] = ''; $body[] = $encoded; } mail($to, $subject, join("\n",$body),join("\n",$header)); ?> Men det virker altså ikke, er der nogen der kan se fejl?? Mvh Ette.
Annonceindlæg fra Infor
her er en lidt kode fra "Wrox" Beginner PHP. Det virker perfekt er lige til at tilpasse. <?php //adv_mailer.php function mailer_header() { ?> <HTML> <HEAD><TITLE>E-mailer</TITLE></HEAD> <BODY> <?php } function mailer_footer() { ?> </BODY> </HTML> <?php } function error_message($msg) { mailer_header(); echo "<SCRIPT>alert(\"Error: $msg\");history.go(-1)</SCRIPT>"; mailer_footer(); exit; } function user_message($msg) { mailer_header(); echo "<SCRIPT>alert(\"$msg\");history.go(-1)</SCRIPT>"; mailer_footer(); exit; } function mail_form() { global $PHP_SELF; ?> <FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA" ACTION="<?php echo $PHP_SELF ?>"> <INPUT TYPE="HIDDEN" NAME="action" VALUE="send_mail"> <DIV ALIGN="CENTER "> <TABLE CELLSPACING="2" CELLPADDING="5" WIDTH="90%" BORDER="1"> <TR> <TH ALIGN="CENTER" WIDTH="30%">To</TH> <TD WIDTH="70%"><INPUT NAME="mail_to" SIZE="20"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Cc</TH> <TD WIDTH="70%"><INPUT NAME="mail_cc" SIZE="20"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Bcc</TH> <TD WIDTH="70%"><INPUT NAME="mail_bcc" SIZE="20"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">From</TH> <TD WIDTH="70%"><INPUT SIZE="20" NAME="mail_from"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Reply-to</TH> <TD WIDTH="70%"><INPUT SIZE="20" NAME="mail_reply_to"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Attachment</TH> <TD WIDTH="70%"><INPUT TYPE="FILE" NAME="userfile"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Type</TH> <TD WIDTH="70%"> <INPUT TYPE="RADIO" VALUE="text" NAME="mail_type" CHECKED>TEXT <INPUT TYPE="RADIO" VALUE="html" NAME="mail_type">HTML</TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Encoding</TH> <TD WIDTH="70%"> <INPUT TYPE="RADIO" VALUE="7bit" NAME="mail_encoding" CHECKED>7BIT <INPUT TYPE="RADIO" VALUE="8bit" NAME="mail_encoding">8BIT</TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Character Set</TH> <TD WIDTH="70%"> <INPUT TYPE="RADIO" VALUE="us-ascii" NAME="mail_charset" CHECKED>US-ASCII <INPUT TYPE="RADIO" VALUE="euc-kr" NAME="mail_charset">EUC-KR</TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Subject</TH> <TD WIDTH="70%"><INPUT SIZE="40" NAME="mail_subject"></TD> </TR> <TR> <TH ALIGN="CENTER" WIDTH="30%">Body</TH> <TD WIDTH="70%"><TEXTAREA NAME="mail_body" ROWS="16" COLS="70"></TEXTAREA></TD> </TR> <TR> <TH WIDTH="100%" COLSPAN="2" ALIGN="CENTER"> <INPUT TYPE="SUBMIT" VALUE="Send" NAME="SUBMIT"> <INPUT TYPE="RESET" VALUE="Reset" NAME="RESET"> </TH> </TR> </TABLE> </DIV> </FORM> <?php } function send_mail() { global $mail_to, $mail_cc, $mail_bcc, $mail_from, $mail_reply_to; global $mail_body, $mail_subject; global $userfile, $userfile_type, $userfile_name, $userfile_size; global $mail_type, $mail_charset, $mail_encoding; $mail_parts["mail_type"] = $mail_type; $mail_parts["mail_charset"] = $mail_charset; $mail_parts["mail_encoding"] = $mail_encoding; $mail_parts["userfile"] = $userfile; $mail_parts["userfile_type"] = $userfile_type; $mail_parts["userfile_name"] = $userfile_name; $mail_parts["userfile_size"] = $userfile_size; $mail_parts["mail_to"] = $mail_to; $mail_parts["mail_from"] = $mail_from; $mail_parts["mail_reply_to"] = $mail_reply_to; $mail_parts["mail_cc"] = $mail_cc; $mail_parts["mail_bcc"] = $mail_bcc; $mail_parts["mail_subject"] = trim($mail_subject); $mail_parts["mail_body"] = $mail_body; if(my_mail($mail_parts)) user_message("Successfully sent an e-mail titled '$mail_subject'."); else error_message("An unknown error occurred while attempting to send an e-mail titled '$mail_subject'."); } function my_mail($mail_parts) { $mail_to = $mail_parts["mail_to"]; $mail_from = $mail_parts["mail_from"]; $mail_reply_to = $mail_parts["mail_reply_to"]; $mail_cc = $mail_parts["mail_cc"]; $mail_bcc = $mail_parts["mail_bcc"]; $mail_subject = $mail_parts["mail_subject"]; $mail_body = $mail_parts["mail_body"]; $mail_type = $mail_parts["mail_type"]; $mail_charset = $mail_parts["mail_charset"]; $mail_encoding = $mail_parts["mail_encoding"]; $userfile = $mail_parts["userfile"]; $userfile_type = $mail_parts["userfile_type"]; $userfile_name = $mail_parts["userfile_name"]; $userfile_size = $mail_parts["userfile_size"]; if(empty($mail_to)) error_message("Empty to field!"); if(empty($mail_subject)) error_message("Empty subject!"); if(empty($mail_body)) error_message("Empty body! "); $mail_to = str_replace(";", ",", $mail_to); $mail_headers = ''; if(!empty($mail_from)) $mail_headers .= "From: $mail_from\r\n"; if(!empty($mail_reply_to)) $mail_headers .= "Reply-to: $mail_reply_to\r\n"; if(!empty($mail_cc)) $mail_headers .= "Cc: " . str_replace(";", ",", $mail_cc) . "\r\n"; if(!empty($mail_bcc)) $mail_headers .= "Bcc: " . str_replace(";", ",", $mail_bcc) . "\r\n"; $mail_subject = stripslashes($mail_subject); $mail_body = stripslashes($mail_body); if($userfile_size > 0) { $mail_boundary = md5(uniqid(time())); $mail_headers .= "MIME-Version: 1.0\r\n"; $mail_headers .= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"\r\n\r\n"; $mail_headers .= "This is a multi-part message in MIME format.\r\n\r\n"; $fp = fopen($userfile, "r"); $file = fread($fp, filesize($userfile)); $file = chunk_split(base64_encode($file)); $new_mail_body = "--$mail_boundary\r\n"; $new_mail_body .= "Content-type:text/plain;charset=$mail_charset\r\n"; $new_mail_body .= "Content-transfer-encoding:$mail_encoding\r\n\r\n"; $new_mail_body .= "$mail_body\r\n"; $new_mail_body .= "--$mail_boundary\r\n"; if(!empty($userfile_type)) $mime_type = $userfile_type; else $mime_type = "application/octet-stream"; $new_mail_body .= "Content-type:$mime_type;name=$userfile_name\r\n"; $new_mail_body .= "Content-transfer-encoding:base64\r\n\r\n"; $new_mail_body .= $file . "\r\n\r\n"; $new_mail_body .= "--$mail_boundary--"; $mail_body = $new_mail_body; } else if($mail_type == 'html') { $mail_headers .= "Content-type: text/html; charset=$mail_charset\r\n"; $mail_headers .= "Content-transfer-encoding:$mail_encoding\r\n\r\n"; } else { $mail_headers .= "Content-type: text/plain; charset=$mail_charset\r\n"; $mail_headers .= "Content-transfer-encoding:$mail_encoding\r\n\r\n"; } return mail($mail_to,$mail_subject,$mail_body,$mail_headers); } switch ($action) { case "send_mail": mailer_header(); send_mail(); mailer_footer(); break; case "mail_form": mailer_header(); mail_form(); mailer_footer(); break; default: mailer_header(); mail_form(); mailer_footer(); break; } ?> Kim
Hej Talker, ja det er koden, men da ham der lavede den desværre ikke kan logge ind på eksperten, kan han ikke hjælpe mere og det er ikke det samme spørgsmål for nu har jeg pludselig en kode, det havde jeg ikke før, problemet er bare at den ikke helt virker efter hensigten, men har du måske et kvalificeret svar på det?
Hej Kim, det er pænt af dig, men her er der jo en indbygget form i og det er ikke så godt, fordi jeg har fået lavet en rigtig pæn og enkel form, hvor jeg så skal bruge en kode der kan knyttes til den form.
Et skud i tågen - du mangler at afslutte din boundry i slutningen af mailen: --$boundry--
rednex, næhh det virker stadig ikke, men nu har jeg skrevet form-data i phpscriptet hvor der ellers står alternative og nu kan den sende en vedhæftet fil, blot en fil jeg overhovedet ikke kender og som jeg ikke kan åbne, det er meget mærkeligt :0/
Prøv med Content-type: multipart/mixed og hvis du kan paste den mail du får (med headers og hele balladen) ville det være mums
Jeg har prøvet med multipart/mixed men det virker ikke, øhhh hvad mener du med at paste den mail ? jeg er ikke så sikker i dette cypersprog :-)
Hvis du f.eks. kører med Outlook Express som mail klient har du mulighed for at se hele den rå 'kode' fra den mail scriptet sender. Hvis du kunne kopiere den herind ville det måske være nemmere at se hvad der gik galt. Du klikker på mailen i oversigten, højreklikker og vælger Properties. Derefter vælger du fanebladet Details og trykker på knappen der hedder Message Source. Så får du et vindue op med den rå mail. Kopiér al teksten herind, så kan vi måske se hvad der går galt.
Øh det ser underligt ud, men jeg tror at det er krypteringen den er gal med. Return-Path: <dvdesign@adslhome.dk> Received: from pfepa.post.tele.dk ([195.41.46.235]) by fepE.post.tele.dk (InterMail vM.5.01.06.08 201-253-122-130-108-20031117) with ESMTP id <20040507104617.GHXX9190.fepE.post.tele.dk@pfepa.post.tele.dk> for <galleriette@mail.dk>; Fri, 7 May 2004 12:46:17 +0200 Received: from PENTIUM3 (0x503e9c1e.naenxx2.adsl-dhcp.tele.dk [80.62.156.30]) by pfepa.post.tele.dk (Postfix) with SMTP id 9DFEC47FE81 for <galleriette@mail.dk>; Fri, 7 May 2004 12:46:17 +0200 (CEST) Date: Fri, 07 May 2004 12:46:16 +0100 From: dvdesign@adslhome.dk Subject: Emne To: galleriette@mail.dk MIME-Version: 1.0 Content-Type: multipart/form-data; boundary="409b68f6a8412" Content-Transfer-Encoding: 7bit Message-Id: <20040507104617.9DFEC47FE81@pfepa.post.tele.dk> X-NAS-Bayes: #0: 0.000484664; #1: 0.999515 X-NAS-Classification: 0 X-NAS-MessageID: 256 X-NAS-Validation: {EC5135E5-2320-4037-83F8-7F73D2A4A580} --409b68f6a8412 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit --409b68f6a8412 Content-Type: image/pjpeg; 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
Jeg er på vej til fødselsdag, men jeg skal nok prøve at kigge på det når jeg kommer hjem igen
Jeg tror jeg har fundet problemet. Du mangler Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="filnavn.filtype" for den part hvor din attachment ligger. Du skal stadig huske at afslutte mailen med $boundry fulgt af to bindestreger (attachment data, tom linie, --$boundry--). Jeg tror også at Content-Type på selve mailen skal være multipart/mixed.
Øh! kan du ikke sætte det ind i hvor det skal sættes, for hvad er det for en af dem dette skal sættes ind i ? Jeg er lidt forvirret....og er en begynder i php :-) men jeg arbejder på at blive bedre.
Din kode skulle gerne ende med at se sådan her ud: <?php $to = 'din@email.dk'; $subject = 'Emne'; $textmail = ''; foreach($_POST as $key => $val ) { if( $key != 'Submit' && !empty($val) ) { $textmail .= "$key: $val\n"; } } $encoded = ''; if( isset($_FILES['file']) && isset( $_FILES['file']['tmp_name']) ) { $content = file_get_contents($_FILES['file']['tmp_name']); $encoded = chunk_split(base64_encode($content)); } // Lav mail $boundary = uniqid(""); $header = array(); $header[] = 'MIME-Version: 1.0'; $header[] = "Content-Type: multipart/mixed; boundary=\"$boundary\""; $header[] = 'Content-Transfer-Encoding: 7bit'; $body = array(); $body[] = "--$boundary"; $body[] = 'Content-Type: text/plain; charset="iso-8859-1"'; $body[] = 'Content-Transfer-Encoding: 7bit'; $body[] = ''; $body[] = $textmail; if(! empty($encoded)) { $body[] = '--$boundary'; $body[] = 'Content-Type: ' . $_FILES['file']['type']; $body[] = 'Content-Transfer-Encoding: base64'; $body[] = 'Content-Disposition: attachment; filename="' . $_FILES['file']['name'] . '"'; $body[] = ''; $body[] = $encoded; $body[] = '--' . $boundry . '--'; } mail($to, $subject, join("\n",$body),join("\n",$header)); ?> Har ikke lige testet det, men hvis der er nogen problemer må du lige sige til.
Rednex, det virker ikke, der er slet ingenting der bliver vedhæftet, den er helt tom :-(
Ja, den er ikke helt tom, den skriver stien til billedet : file: C:\Documents and Settings\dvdesign\Dokumenter\Billeder\images004.jpg men ingen billede
Prøv at fjerne: $body[] = 'Content-Disposition: attachment; filename="' . $_FILES['file']['name'] . '"';
Du kan også prøve at ændre den til: $body[] = 'Content-Disposition: attachment; filename="' . basename($_FILES['file']['name']) . '"';
Du skal lige ændre enctype i formen til enctype="multipart/form-data"
nu kommer clipsen frem, men filen har fået et andet navn. fra at hedde images004.jpg, kommer den til at hedde ATT00441.jpg, og jeg kan godt åbne den men kan ikke se den, den virker som om den er smadret..
men størrelsen passer vist meget godt..
Der var lige en smutter i det script jeg postede sidst. Denne gang har jeg testet det, så det skulle meget gerne spille nu :o) <?php $to = 'din@email.dk'; $subject = 'Emne'; $textmail = ''; foreach($_POST as $key => $val ) { if( $key != 'Submit' && !empty($val) ) { $textmail .= "$key: $val\n"; } } $encoded = ''; if( isset($_FILES['file']) && isset( $_FILES['file']['tmp_name']) ) { $content = file_get_contents($_FILES['file']['tmp_name']); $encoded = chunk_split(base64_encode($content)); } // Lav mail $boundary = uniqid(""); $header = array(); $header[] = 'MIME-Version: 1.0'; $header[] = "Content-Type: multipart/mixed; boundary=\"$boundary\""; $header[] = 'Content-Transfer-Encoding: 7bit'; $body = array(); $body[] = "--$boundary"; $body[] = 'Content-Type: text/plain; charset="iso-8859-1"'; $body[] = 'Content-Transfer-Encoding: 7bit'; $body[] = ''; $body[] = $textmail; if(! empty($encoded)) { $body[] = "--$boundary"; $body[] = 'Content-Type: ' . $_FILES['file']['type']; $body[] = 'Content-Transfer-Encoding: base64'; $body[] = 'Content-Disposition: attachment; filename="' . basename($_FILES['file']['name']) . '"'; $body[] = ''; $body[] = $encoded; $body[] = '--' . $boundary . '--'; } mail($to, $subject, join("\n",$body),join("\n",$header)); ?>
det virker stadigvæk ikke.. men jeg har lige fundet ud af at den giver filen et nyt navn hvergang jeg sender første gang:ATT00515.jpg Anden gang: ATT00525.jpg, o.s.v.. jeg ved ikke om det kan give et fingerpeg om hvad der er galt..
Jeg kan jo eventuelt ændre den til din mailadresse? så kan du måske bedre se hvad den gør?....
Nu må jeg altså lige ud at handle, håber at høre fra dig :-)
Hej Rednex, nu virker det sgu´´ , jeg havde placeret din sidste kode forkert, men så den tog den gamle. YES! Giv mig mulighed for at give dig dine velfortjente point, det var bare prima! Forresten, hvordan får jeg den til at åbne en anden htmlside når mailen er sendt og en tredie hvis den fejler?? jeg forhøjer gerne pointene (det er lige det sidste jeg mangler for at få min side op at køre).
Det er skam meget nemt. Erstat linien: mail($to, $subject, join("\n",$body),join("\n",$header)); med: if(mail($to, $subject, join("\n",$body),join("\n",$header))) { header('Location: /det_gik_godt.htm'); } else { header('Location: /det_gik_skidt.htm'); } Du skal bare sørge for at der ikke er nogen mellemrum eller linieskift udenfor dit php script (altså udenfor <%php ... %>). Ellers vil du få en fejl i stil med 'Cannot et-eller-andet. Headers already sent.'
Det er iøvrigt en flot side du har fået sat sammen. Men det kunne godt være du skulle ændre 'Referancer' til 'Referencer' i menuen ;o)
Det har du helt ret i:-) havde opdaget det, men blot ikke rettet det endnu, og tak for din hjælp :-)
Vi tilbyder markedets bedste kurser inden for webudvikling