DogEater008 0 Report post Posted October 21, 2005 i know there are a few topics talk about attachment problem, but i want to know if anyone could show me a basic code for attaching files like pictures with the message.I made a html form, and redirect the information to my mail.php file to process the information and send it to my email. I want to know what do i have to do to attach files like pictures. I tried to search on google, and the codes are so complicated (i'm an amateur at this). Would it be possilbe if you could show me the code and explain to me what it does and how i could customize it to fit my needs?thankyou Share this post Link to post Share on other sites
DogEater008 0 Report post Posted October 22, 2005 // In PHP earlier then 4.1.0, $HTTP_POST_FILES should be used instead of// $_FILES. In PHP earlier then 4.0.3, use copy() and is_uploaded_file()// instead of move_uploaded_file$uploaddir = '/public_html/site/html/uploads/';$uploadfile = $uploaddir. $_FILES['userfile']['name'];print "<pre>";if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "File is valid, and was successfully uploaded. "; print "Here's some more debugging info:\n"; print_r($_FILES);} else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES);}print "</pre>"; i found that code and when i tried to exacute the php file, it said Possible file upload attack! Here's some debugging info: Array ( [attachment] => Array ( [name] => logo.jpg [type] => image/jpeg [tmp_name] => /tmp/phpmlM3po [error] => 0 => 20655 ) ) i tried to give my folders full permission and it still doesn't work. and how can I attach the uploaded file(s) to an email Share this post Link to post Share on other sites
DogEater008 0 Report post Posted October 23, 2005 ok.. i think i got the file to upload to my tmp folder ( i think because when i exacute the .php file , i got the message File is valid, and was successfully uploaded.Here is some more debugging info:Array( [attachment] => Array ( [name] => logo.jpg [type] => image/jpeg [tmp_name] => /tmp/phpvzOMho [error] => 0 [size] => 20655 )). [/CODESo i'm guessing it works. NOw.. my question is.. how am i suppose to embed that into my mail.[CODE]<?$name=$_POST['name'];$email=$_POST['email'];$attachment=$to="example@gmail.com";$message="Terms and Conditions: $agree\nName: $name Middle:$middle\nAge: $AGE\nDate of Birth: $month $date, $year\nWeight: $weight Pounds\nHeight: $height Inches\nAddress: $address $city, $state $code\nTelephone: $phone\nEmail: $email\nSchool: $school\nMajor: $major\nAbout $name\n $reason";if(mail($to,"Application from $name",$message,"From: $email\n")) {echo "Thankyou for registeringt";} else {echo "There was a problem sending the mail. Please check that you filled in the form correctly. Please Click Back";} i dont' really know what i'm doing exactly. So please help me out. It seems like no one is bothering to help. =( Share this post Link to post Share on other sites
Lozbo 0 Report post Posted February 7, 2006 Hi dog eater, I find myself in the same problem as you. I tried looking a little bit in google and php dot net but Im also an amateur... I have a working php sendmail script, which I adapted from different stuff I found here and there, I didnt write the whole thing but I made the final mix... I know (guess you already know this too) how to send mail, the most basic line to achieve so is this:mail($admin_mail, $subject, $content, $headers)Where admin mail is the mail you want the message to be sent, and the headers are additional information which is optional. Subject and Content I think that are obvious. But the command to attach a file is what is missing, and I dont know either how to do it...Hope someone could help us both.. thanks in advance Ill keep browsing the web for it but would apreciate a lot yer help... Share this post Link to post Share on other sites
Tyssen 0 Report post Posted February 8, 2006 Make sure you're cleaning any input before sending it to your mail function. Share this post Link to post Share on other sites
Lozbo 0 Report post Posted February 8, 2006 How is that? cleaning any input? You mean from the html form itself? Could you teach us how to do so? Thanx a lot Tyssen, but Im not sure if this is a tip for sending secure mail through php or actually about the thread's topic... I mean no offense... Share this post Link to post Share on other sites
Tyssen 0 Report post Posted February 8, 2006 Well it doesn't necessarily relate to the topic of adding email attachments, but whenever you're using a HTML form to transmit info to your mail program via PHP, you need to be aware of the danger of 'email header injection'. A Google search on that will provide you with more and better info than I could give here. Share this post Link to post Share on other sites
kvkv 0 Report post Posted February 8, 2006 Here you go. Use this opensource code to send your mails.http://phpmailer.worxware.com/ Share this post Link to post Share on other sites
Lozbo 0 Report post Posted February 9, 2006 Thanx Tyssen its a nice tip ill google it... And kvkv thanx for that link, ill give it a try, i havent tested it yet but the main page displays this as a feature:Multiple fs, string, and binary attachments (those from database, string, etc)Im not sure if it is what i need, do you know something about it? I dont want to upload files to a database but to send them right through the form... thanks a lot! Share this post Link to post Share on other sites
Hamtaro 0 Report post Posted February 25, 2006 I'm a little late with this, but I can show you how I did it (after doing a lot of searches from Google). It's a little more simpler. However, one limitation of the code I'm going to give, is that it supports only gif or jpg images. Should you want to add more, it's easy to do, but you need to know the mime type for the file. //Gather file data and other things$tmp = $_FILES['sample']['tmp_name'];$sep = md5(time());$filename = $_FILES['sample']['name'];$filedata = file_get_contents($tmp); //Get file contents$fdata = chunk_split(base64_encode($filedata)); //Encode data into text form$to = "you@domain.com"; //Email address to send this to//Determine mime type$ext = explode('.', $filename);$ext = $ext[1];if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {$mime_type = "image/jpeg";}elseif($ext == "gif" || $ext == "GIF") {$mime_type = "image/gif";}else {exit("Error: Wrong file type!");}//Begin the message. Be sure to change this how you want it.$message = "Email message here";//Begin the headers$headers = "From: \"From Name\" <{$email}>MIME-Version: 1.0Content-Type: Multipart/Mixed; boundary=\"$sep\"charset=\"iso-8859-1\"Content-Transfer-Encoding: 7bit--$sepContent-Type: $mime_type; name=\"$filename\"Content-Transfer-Encoding: base64Content-Disposition: attachment; filename=\"$filename\"$fdata--$sep";$subject = "Email Subject Here";mail($to, $subject, $message, $headers); One last limitation: Files with more than one . in them may not be processed completely right (I've not tested it that much). I don't know exactly how to get the extension. I don't know just how many files you'll get with more than one in it, though.I will now explain it to you. The file sending is actually done using the mail headers. However, the message has to be converted to base64 encoding (which will send it as text). This is done by first getting the contents of the file using file_get_contents() then chunk_split() and base64_encode(). The chunk_split() converts the text to match RFC 2045 semantics (that way the email client will be able to read the base64 encoded file).Oh, and remember where it says $_FILES['sample'] change 'sample' to the name of the file upload field (just reminding you). Also, the $email in the headers should be changed to whatever you want the From part to be.I have tested this code many times, and it works the way it should. However, you still need to include your form, and add whatever data you're going to send in the message. If you want to send other types of files, you just add more after the elseif. Such as:if($ext == "JPG" || $ext == "jpg" || $ext == "JPEG" || $ext == "jpeg") {$mime_type = "image/jpeg";}elseif($ext == "gif" || $ext == "GIF") {$mime_type = "image/gif";}elseif($ext == "bmp" || $ext == "BMP") {$mime_type = "image/bmp"; //I think that's the mime type for BMP files}elseif($ext == "txt" || $ext == "TXT") {$mime_type = "text/plain";}else {exit("Error: Wrong file type!");} One last note: I know the mime_content_type() function gives me the mime type, but I had some problems with it. Anyway, this method also ensures that you get only the file types that you want. Also, I used the file extension in both lowercase and caps to ensure that it would be sent. I know that sometimes the file extensions get capitalized automatically for some reason in Windows. I hope this helped you. If I need to explain anything more, please let me know. Share this post Link to post Share on other sites
iGuest 3 Report post Posted January 29, 2008 Bulk Mail With attachment Form To Php Mail. Attachment I want to sent bulk mail with attachments, the emailids from mysql database and the messages and subjects given by user. Please give me Suggetion to me or send me sample scripts. I am new to php scripts -question by Jeganathan Share this post Link to post Share on other sites
iGuest 3 Report post Posted April 6, 2008 response, its easy Form To Php Mail. Attachment Just so you guys know if you send the file through a form submit, the $_FILES['userfile']['type'] contains the MIME type information, just send that variable to the header for a quick solution... Encoding is different though... There might be a good encoding format that will work for just about anything your sending... Not sure though Share this post Link to post Share on other sites
iGuest 3 Report post Posted May 15, 2008 Thanks for a beautiful site! I have added you in elected! http://forums.xisto.com/no_longer_exists/ by Anne Share this post Link to post Share on other sites
iGuest 3 Report post Posted June 20, 2008 Thank for the articles of (PHP Mail with Attachment) Form To Php Mail. Attachment This articles help me a lot. Thank for it. -feedback by smithveg Share this post Link to post Share on other sites
iGuest 3 Report post Posted July 15, 2008 please can u give me the code for sending an file attachment in send mail function Form To Php Mail. Attachment I tried very much for the specific code but in vain. Please provide me the exact code to do so. Thank you, Pritish -reply by pritish Share this post Link to post Share on other sites