PHP - Email Attachment
Hi I need to attach a file to an email from my database records
So far i have: function sendNewCandidate($user, $email, $agent, $jobtitle, $useremail, $cv) { $from = "From: ".$user." <".$useremail.">"; $subject = "New applicant"; $attachment = chunk_split(base64_encode(file_get_contents('http://www.website.co.uk/$cv'))); $body = $agent.",\n\n" ."".$user." has applied for your job ".$jobtitle."." ."We suggest you go to your admin panel and view the CV" ."- Thank you. "; return mail($email, $subject, $body, $from); } }; $cv holds the location of the file for the user. These files are generally .doc I have read i may need something like this: Content-Type: application/zip; name="attachment.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment but how would i incorporate this? Thanks guys Similar TutorialsI created a php file to send an email with two image attachments. The email portion sends the email o.k., but I can't get the attachments to load. The first is my form. <?php if(!empty($_POST)) { // The HTML form handler. require "handler.php"; } ?> <script type = "text/javascript"> //Validate required function validateRequired(FIELD, ALERTTEXT) { with(FIELD) { if(value == null || value == '') { alert(ALERTTEXT); return false; } else { return true; }; }; }; function validateForm(FORM) { with(FORM) { if(validateRequired( fName, "You must provide your First Name!") == false) {fName.focus(); return false;}; if(validateRequired( lName, "You must provide your Last Name!") == false) {lName.focus(); return false;}; if(validateRequired( job, "You must provide your Occupation!") == false) {job.focus(); return false;}; if(validateRequired( month, "You must provide your Birthday Month!") == false) {month.focus(); return false;}; if(validateRequired( day, "You must provide your Birthday Day!") == false) {day.focus(); return false;}; if(validateRequired( year, "You must provide your Birthday Year!") == false) {year.focus(); return false;}; if(validateRequired( city, "You must provide your City!") == false) {email.focus(); return false;}; if(validateRequired( state, "You must provide your State!") == false) {email.focus(); return false;}; if(validateRequired( phone, "You must provide your Phone Number!") == false) {email.focus(); return false;}; if(validateRequired( email, "You must provide your Email!") == false) {email.focus(); return false;}; //if(validateRequired( full, "You must provide a Full Body Photo!") == false) {full.focus(); return false;}; //if(validateRequired( hdst, "You must provide a Head Shot Photo!") == false) {hdst.focus(); return false;}; }; }; </script> <div id="form"> <p>STEP ONE:</p> <form name="contest" method="post" action="paypal.php" onsubmit="return validateForm(this)" enctype="multipart/form-data" style="margin-left:10px;" > <div id="aName"> First Name<span style="color:#F00;">*</span> <input type="text" name="fName" id="fName" style="width:150px;" /> Last Name<span style="color:#F00;">*</span> <input type="text" name="lName" id="lName" style="width:150px;" /> Occupation<span style="color:#F00;">*</span> <input type="text" name="job" id="job" style="width:150px;" /> </div> <div id="location"> Birthday<span style="color:#F00;">*</span> <input type="text" name="month" maxlength="2" id="month" style="width:30px;" /> / <input type="text" name="day" id="day" maxlength="2" style="width:30px;" /> / <input type="text" name="year" id="year" maxlength="2" style="width:30px;" /> City<span style="color:#F00;">*</span> <input type="text" name="city" maxlength="20" id="city" style="width:200px;" /> State<span style="color:#F00;">*</span> <input type="text" name="state" maxlength="2" id="state" style="width:30px;" /> Phone<span style="color:#F00;">*</span> <input type="text" name="phone" maxlength="14" id="phone" style="width:200px;" /> </div> <div id="con contact"> Email<span style="color:#F00;">*</span> <input type="text" name="email" id="email" style="width:200px;" /> Website <input type="text" name="web" id="web" style="width:200px;" /> Facebook <input type="text" name="facebook" id="facebook" style="width:200px;" /> </div> <div id="biog"> Why Should you be crowned Diva of the Year?<span style="color:#F00; font-size:12px;"> *Limit 350 words</span> <br /> <textarea name="bio" id="bio" cols="60" rows="10"></textarea> </div> <!--<div id="fileUpload"> <p style="color:#F00; font-style:italic; font-size:12px;">A picture with your application is required. A full length and headshot only. The image must be .jpg</p> Full Body Picture<span style="color:#F00;">*</span> <span style="color:#F00; font-size:12px;">(Max file size 2MB)</span> <br /> <input type="hidden" name="MAX_FILE_SIZE" value="102400" /> <input type="hidden" name="upload" value="upload" id="upload" > <input type="file" name="full" id="full" /> <br /> <br /> Head Shot Picture<span style="color:#F00;">*</span> <span style="color:#F00; font-size:12px;">(Max file size 2MB)</span> <br /> <input type="hidden" name="MAX_FILE_SIZE" value="102400" /> <input type="file" name="hdst" id="hdst" /> <input type="hidden" name="upload" value="upload" id="upload" > </div>--> <div id="marketing"> <input type="checkbox" name="news" id="news" checked="checked" /> Yes, Please sign me up to receive a monthly newsletter and other email from SizeSexyDivas </div> <div id="done"> <input type="submit" name="submit" value="Submit" id="submit" > </div> <div id="errorMessage"> <?php echo "<h3>". $error ."</h3>"; ?> </div> <span style="text-align:center; font-size:10px; color:#999;">For full contest "Rules and Regulations" on the SizeSexyDiva of the Year Contest Click <a href="rules.php" style="color:#900;">Here.</a></span> </form> </div> This is the function php on the handler.php page: <?php // Process form fields $fName = $_POST['fName']; $lName= $_POST['lName']; $job = $_POST['job']; $month = $_POST['month']; $day = $_POST['day']; $year = $_POST['year']; $age = ($month . " / " . $day . " / " . $year); $city = $_POST['city']; $location = ($city . ", " . $state); $state = $_POST['state']; $phone = $_POST['phone']; $email = $_POST['email']; $web = $_POST['web']; $facebook = $_POST['facebook']; $bio = $_POST['bio']; $bio = wordwrap($bio, 70); $news = $_POST['news']; $_POST['fName'] = htmlspecialchars(stripslashes($_POST['fName'])); $_POST['lName'] = htmlspecialchars(stripslashes($_POST['lName'])); $_POST['email'] = htmlspecialchars(stripslashes($_POST['email'])); $_POST['bio'] = htmlspecialchars(stripslashes($_POST['bio'])); $_POST['web']= htmlspecialchars(stripslashes($_POST['web'])); $_POST['facebook']= htmlspecialchars(stripslashes($_POST['facebook'])); $_POST['city']= htmlspecialchars(stripslashes($_POST['city'])); $_POST['state']= htmlspecialchars(stripslashes($_POST['state'])); $_POST['month']= htmlspecialchars(stripslashes($_POST['month'])); $_POST['day']= htmlspecialchars(stripslashes($_POST['day'])); $_POST['year']= htmlspecialchars(stripslashes($_POST['year'])); if($_SERVER['REQUEST_METHOD']=="POST") { //Add a multipart boundary above the plain message $to = 'Del*Nique Works <customerservice@delnique.com>'; $to = 'SizeSexyDivas <contest@sizesexydivas.com>'; $from = stripslashes($fName . " " . $lName . " at " . $email); $subject = "Contestant Application " .strftime("%T", time()); // generate a random string to be used as the boundary marker $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; // Add the headers for a file attachment $head = "From: $from\n". "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // here, we'll start the message body. this is the text that will be displayed in the e-mail $application = "SizeSexyDiva of the Year Contestant: $from\n\n"; $application .= " Name: $fName" . " " . "$lName \n Occupation: $job \n Location: $location \n Phone: $phone \n Age: $age \n Email: $email \n Website: $web \n Facebook: $facebook\n Newsletter: $news\n Full Body: $fdata\n Head Shot: $hdata\n Bio: $bio \n\n "; //next, we'll build the invisible portion of the message body *note that we insert two dashes in front of the MIME boundary when we use it $application = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $application ."\n\n"; //now we'll process our uploaded files foreach($_FILES as $userfile){ //store the file information to variables for easier access $tmp_name = $userfile['tmp_name']; $type = $userfile['type']; $name = $userfile['name']; $size = $userfile['size']; // if the upload succeded, the file will exist if (file_exists($tmp_name)) { // check to make sure that it is an uploaded file and not a system file if (is_uploaded_file($tmp_name)) { //open the file for a binary read the file to be attached ('rb' = read binary) $file = fopen($tmp_name,'rb'); // read the file content into a variable $data = fread($file,filesize($tmp_name)); // close the file fclose($file); // Base64 encode the file data for full and split it into acceptable length lines $data = chunk_split(base64_encode($data)); } $application .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } // here's our closing mime boundary that indicates the last of the message $application .= "--{$mime_boundary}--\n"; //send mail function @mail( $to, $subject, $head, $application); ?> So if you can help me I would really appreciate it. Ive been trying to get this email attachment to work but I think one of the headers is wrong. It wont attach the file Code: [Select] $address = "mail@site.com"; $subject = "Test HTML Message"; $hash = md5(rand().time()); $headers .= "From: yourname <you@youremail.com>\r\nReply-To: noreply@youremail.com"; $headers .= "\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"bound-{$hash}\" "; $file = "http://www.site.com/images/funny.jpg"; $attachment = chunk_split(base64_encode(file_get_contents($file))); $ext = pathinfo($file, PATHINFO_EXTENSION); $file_base = pathinfo($file, PATHINFO_BASENAME); $body = " --bound-{$hash} Content-Type: text/html Content-Transfer-Encoding: 7bit <h2>Hello from Wizecho!</h2> <p>This is the actual email you will receive with <b>HTML</b> <i>formatting.</i></p> --bound-{$hash} Content-Type: image/jpeg name=\"{$file_base}\" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment {$attachment} --bound-{$hash}-- "; if(mail($address,$subject,$body,$headers)){ echo "Email Sent"; }else{ echo "Mail not sent"; } I have an operational database I built with PHPRunner software that works flawlessly...for the most part. I want to add functionality for a button which, once pressed will generate a "Print" copy of the current record as it appears in PHP from the actual web page. I don't mind if the content is attached in PDF, HTML, or any other form as long as the "Print" output looks the same as if it were actually printed on paper. The goal is to provide a method for users to simply click a button to send an email copy of the electronic information for the customer's records. I already have a field within the form that contains the customer's email address, so I can have the script pull that email and automatically use that. I just need the script to automatically attach the PDF copy or HTML copy (not sure which would be easier). It seems to me that if there were a way to have the "Print" command generate the copy then attach that generated copy instead of sending it to the "Print" dialog for the web browser, that would be easiest to then somehow attach to the email to be sent. I have scoured the web trying to find an option for this and only now have appealed to the experts on this forum for a possible resolution.
I'm pretty new to PHP, and by new, I mean I have never done it or any other form of coding before starting my job a month or so ago. I've basically been manually trying to pick up PHP as I go. The website that I am working on had its core built, but I am trying to add functionality to it. The website already had the contact for that you can see he http://www.janova.us/index.php/contact The form would submit an email to an email address based on which subject was picked. I have since added a simple file upload field. My problem, however, is tying in the form to the email. I need to upload it and then send it as an attachment with the email. Here is what I am working with currently: <div id="breadCrumbs"> <a href="index.php">MAIN</a> > <a href="index.php/contact">CONTACT</a> </div> <? $user =& JFactory::getUser(); $user_id = $user -> get('id'); $user_name = $user -> get('name'); $db = JFactory::getDBO(); $query = "SELECT jos_content.introtext, jos_content.fulltext FROM jos_content WHERE catid = 68 AND sectionid = 5 LIMIT 0,3"; $db->setQuery($query); $rows = $db->loadRowList(); ?> <div id="contactTop"> <div id="contactBanner"></div> <div id="contactInfo"> <? echo $rows[0][0]; echo $rows[0][1]; ?> </div> </div> <div id="contactGreeting"> <? echo $rows[1][0]; echo $rows[1][1]; ?> </div> <? if($user_id > 0) { $query = "SELECT jos_users.name, jos_users.email FROM jos_users WHERE id = ".$user_id; $db->setQuery($query); $user_data = $db->loadRow(); } if(isset($_POST["submit"])) { $error = false; $subjectError = false; $messageError = false; $nameError = false; $emailError = false; if(!isset($_POST["subject"]) || empty($_POST["subject"])) { $error = true; $subjectError = true; } if(!isset($_POST["message"]) || empty($_POST["message"])) { $error = true; $messageError = true; } if(!isset($_POST["name"]) || empty($_POST["name"])) { $error = true; $nameError = true; } if(!isset($_POST["email"]) || empty($_POST["email"])) { $error = true; $emailError = true; } else if(!ereg("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$",$_POST["email"])) { $error = true; $emailError = true; echo $_POST["email"]; } if(!$error) { $to = $_POST["subject"]."@janova.us"; $from = $_POST["email"]; $subject = $_POST["subject"]." by: ".$_POST["name"]; $message = $_POST["subject"]."\n\r\n\r".$_POST["message"]."\n\r\n\r-".$_POST["name"]; $headers = "From: $from"; <!----------BEGIN ADDED CODE-------------------------> // Obtain file upload vars $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; if (is_uploaded_file($fileatt)) { // Read the file to be attached ('rb' = read binary) $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); // Generate a boundary string $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add the headers for a file attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the plain message $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; } <!-----------END ADDED CODE----------------> mail($to,$subject,$message,$headers); echo "Your request has been submitted."; } else { ?> <form action="#" id="contactForm" method="post"> <div id="contactFormLeft"> <? if($user_id > 0) { ?> <label> Your name<? if($nameError) { ?><span class="formError">*</span><? }?> </label><br/> <input type="text" name="name" value="<?=$user_data[0];?>"/><br/> <label> Your email<? if($emailError) { ?><span class="formError">*</span><? }?> </label><br/> <input type="text" name="email" value="<?=$user_data[1];?>"/><br/> <? } else { ?> <label> Your name<? if($nameError) { ?><span class="formError">*</span><? }?> </label><br/> <input type="text" name="name" value="<?=$_POST["name"];?>"/><br/> <label> Your email<? if($emailError) { ?><span class="formError">*</span><? }?> </label><br/> <input type="text" name="email" value="<?=$_POST["email"];?>"/><br/> <? } ?> <label> Subject<? if($subjectError) { ?><span class="formError">*</span><? }?> </label><br/> <select name="subject"> <option value="support" <? if($_POST["subject"]=="support") { echo "selected ";}?>>Support</option> <option value="training" <? if($_POST["subject"]=="training") { echo "selected ";}?>>Training</option> <option value="hr" <? if($_POST["subject"]=="hr") { echo "selected ";}?>>HR</option> <option value="sales" <? if($_POST["subject"]=="sales") { echo "selected ";}?>>Consultation</option> </select> <br/> <input type="submit" id="submit" name="submit" value=""/><br/> </div> <div id="contactFormRight"> <label> Message<? if($messageError) { ?><span class="formError">*</span><? }?> </label><br/> <textarea name="message"><?=$_POST["message"];?></textarea><br/> </div> </form> <? } } else { ?> <!--Request More Info AKA Contact Page--> <!--Intro Text from Article--> <form action="#" id="contactForm" method="post"> <div id="contactFormLeft"> <? if($user_id > 0) { ?> <label> Your name </label><br/> <input type="text" name="name" value="<?=$user_data[0];?>"/><br/> <label> Your email </label><br/> <input type="text" name="email" value="<?=$user_data[1];?>"/><br/> <? } else { ?> <label> Your name </label><br/> <input type="text" name="name" value="<?=$_POST["name"];?>"/><br/> <label> Your email </label><br/> <input type="text" name="email" value="<?=$_POST["email"];?>"/><br/> <? } ?> <label> Subject </label><br/> <select name="subject"> <option value="support" <? if($_POST["subject"]=="support") { echo "selected ";}?>>Support</option> <option value="sales" <? if($_POST["subject"]=="sales") { echo "selected ";}?>>Consultation</option> <option value="training" <? if($_POST["subject"]=="training") { echo "selected ";}?>>Training</option> <option value="hr" <? if($_POST["subject"]=="hr") { echo "selected ";}?>>HR</option> </select> <br/> <input type="submit" id="submit" name="submit" value=""/> </div> <div id="contactFormRight"> <label> Message </label><br/> <textarea name="message"><?=$_POST["message"];?></textarea><br/> <!-----------ADDED FILE UPLOAD BOX ------------------> <label> Attach File: </label> <br/> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <input type="file" name="fileatt" /> <br/> <!------------END FILE UPLOAD BOX---------------------> </div> </form> <? } ?> I have commented the changes I have added to the original code so that you can see what I have done. Any input on this would be greatly appreciated. Thanks. Hi, I have a database that stores pdf files. I need to know how do I retrieve the pdf file from the database and then add it as an attachment to be emailed. Regards Dieter Hi, I've created a basic form which uploads a document to my server. How do I generate an email with the uploaded document as an attachment? Here's the HTML: <form enctype="multipart/form-data" action="form1.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name="uploadedfile" type="file" /><br /> <input type="submit" value="Upload File" /> </form> Here's the PHP: <?php $target_path = "uploads/"; $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } ?> Thanks in advance! Interested to find out why this code doesn't seem to properly send the attachment.. it's driving my insane ? Code: [Select] <?php //define the receiver of the email $to = 'youraddress@example.com'; //define the subject of the email $subject = 'Test email with attachment'; //create a boundary string. It must be unique //so we use the MD5 algorithm to generate a random hash $random_hash = md5(date('r', time())); //define the headers we want passed. Note that they are separated with \r\n $headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com"; //add boundary string and mime type specification $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\""; //read the atachment file contents into a string, //encode it with MIME base64, //and split it into smaller chunks $attachment = chunk_split(base64_encode(file_get_contents('attachment.zip'))); //define the body of the message. ob_start(); //Turn on output buffering ?> --PHP-mixed-<?php echo $random_hash; ?> Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>" --PHP-alt-<?php echo $random_hash; ?> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hello World!!! This is simple text email message. --PHP-alt-<?php echo $random_hash; ?> Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: 7bit <h2>Hello World!</h2> <p>This is something with <b>HTML</b> formatting.</p> --PHP-alt-<?php echo $random_hash; ?>-- --PHP-mixed-<?php echo $random_hash; ?> Content-Type: application/zip; name="attachment.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment <?php echo $attachment; ?> --PHP-mixed-<?php echo $random_hash; ?>-- <?php //copy current buffer contents into $message variable and delete current output buffer $message = ob_get_clean(); //send the email $mail_sent = @mail( $to, $subject, $message, $headers ); //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" echo $mail_sent ? "Mail sent" : "Mail failed"; ?> Does anyone know of a way to use PHP to create and email a HTML file? I was attempting to use the standard PHP mail function to pass a HTML string to the message variable, but mail clients have a pretty hard time rendering HTML/CSS correctly. My thought was, if I could take my HTML string and turn it into a file and attach it to a email message the user would be able to open the file in there default browser which would render without issues. Just for the record my HTML string also contains PHP variables, so it must be processes before being sent. So far my research suggests using the PEAR library for sending mail with attachments, but I am only finding literature on how to attach a file already existing on the server to an email message. I am having trouble finding a way to create a HTML file on the fly and attach it to an email message. Has anyone had a similar problem? Is there a different way to accomplish what I am attempting to do here? I have spent nearly all day scouring Google for help on this and after trying numerous scripts unsuccessfully and reading up on imap functions but still getting nowhere as well as frying my brain l have had to accept defeat unless anyone of the many gifted coders here can help me out with a script they might have written and used. many thanks Callum I am building a website that allows a client to email me documents (DocX, PDF, TXT,ZIP, etc) along with a simple HTML based form. I used DreamWeaver to create the form and the upload area. I figured out how to script the PHP code to send the text fields to my email address (and validate them), but I can't figure out how to get the attachments to send. I am BRAND NEW to PHP and just trying to figure all thing out. Any help would be appreciated. I have attached two .txt files to this post. One is the HTML code for the forum and one is the actual PHP code I am using to send the form to my email. Thanks for your help! [attachment deleted by admin] I am attempting to get my email form with file attachment to work. Apparently the file is not reaching getting to the validation portion of the page I have switched $_FILES['X'] on line 203 from file to fakefile as they are labeled in the form also I am employing css hacks to change the input file upload field to have a custom button example -> http://visualrealityink.com/dev/clients/arzan/snell_form_final/form.php here is my code I appreciate any help Code: [Select] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style> #form_container{ display:block; position:absolute; width:610px; min-height:450px; background:#f8f8f8; padding: 5px 5px 5px 5px; font-family:Arial, Helvetica, sans-serif; font-size:14px; } #form { min-height:450px; width:100%; background:#ececec; padding:0 0 0 0; } #formheader { background:url(images/form2_08.png) no-repeat #2f2f2f; margin:0 0 0 0; padding:0 0 0 0; width:631; height:30px;} form{margin:35px 0 0 35px;} fieldset div { margin:0.3em 0; clear:both; } label { float:left; width:10em; text-align:left; margin-right:1em; font-family:Arial, Helvetica, sans-serif; font-size:14px; } input { padding:0.15em; margin:0 0 0 -110px; width:300px; background:url(images/inputbg.png) no-repeat; border:0px solid #ddd; background:#fafafa; -moz-border-radius:0.4em; -khtml-border-radius:0.4em; } .bg2{background:url(images/inputbg.png) no-repeat; height:28px; line-height:28px;} fieldset { border:0px solid #ddd; padding:0 0.5em 0.5em; margin:0 0 0 -100px; } #details{font-size:10px;} #logo{background:url(images/form2_11.png) no-repeat; width:189px; height:238px; margin:-200px 0 0 400px; position:absolute;} #submit{margin:14px 0 0 -5px; border:none; position:absolute; cursor:pointer; cursor:hand;} #reset{border:none; margin:14px 0 0 115px; position:absolute; cursor:pointer; cursor:hand; } #divinputfile{ background:url(images/form2_27.png) no-repeat 100% 1px; height:43px; line-height:43px; width:340px; }#divinputfile #filepc{ opacity: 0.0; -moz-opacity: 0.0; filter: alpha(opacity=00); font-size:18px; margin:0 0 0 0; cursor:hand; cursor:pointer; } #fakeinputfile{ margin-top:-28px; } #fakeinputfile #fakefilepc{ background:url(images/inputbg2.png) no-repeat; style:none; width:240px; height:28px; line-height:28px; border:0; margin:5px 0 0 0; font-size:18px; font-family:Arial; } button { cursor: hand; cursor: pointer; padding: 0px; margin: 0 0 0 0; } a.link_button{ cursor: hand; cursor: pointer; } .fileupload{ margin:0 0 0 50px; } input[type="file"] { cursor: pointer; } .error{font-size:9px; font-family:Arial, Helvetica, sans-serif; color:#F00; } .error ul { text-decoration: none; list-style: none; } .error li { color: #F00;} .captcha_form { margin: 0 0 0 -45px; width:235px; } #captchaimage{ padding:0 0 10px 0;} .small { font-size:9px;} </style> </head> <body> <?php if ($_POST['_submit_check']) { // If validate_form( ) returns errors, pass them to show_form( ) if ($form_errors = validate_form()) { show_form($form_errors); } else { // The submitted data is valid, so process it process_form(); } } else { // The form wasn't submitted, so display show_form(); } function show_form($errors = '') { // If the form is submitted, get defaults from submitted parameters if ($_POST['_submit_check']) { $defaults = $_POST; } else { // Otherwise, set our own defaults: medium size and yes to delivery $defaults = array('IssueDate' => '','ExpiryDate' => ''); } if ($errors) { $error_text = 'You need to correct the following errors:'; $error_text .= '<br /><ul>'; $error_text .= implode('<li>',$errors); $error_text .= '</li></ul>'; } else { // No errors? Then $error_text is blank $error_text = ''; } include 'formhelpers.php' ?> <div id="form_container"> <div id="form"> <br /> <div id="formheader"> </div> <form method="POST" action="<?php print $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data"> <span class="error"> <?php print $error_text ?> </span> <input type="hidden" name="_submit_check" value="1"/> <div> <label for="name">Name: </label> <?php input_text('name', $defaults) ?> </div> <div> <label for="email">Email:</label> <?php input_text('email', $defaults) ?> </div> <div> Attach Resume: <span class="small">(1MB : PDF : DOC : DOCX : TXT)</span> </div> <div> <!--<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> <label for="userfile"></label> <input type="file" name="userfile" id="userfile"/> </div>--> <div id="divinputfile"> <input name="file" type="file" size="30" id="filepc" onchange="document.getElementById('fakefilepc').value = this.value;"/> <div id="fakeinputfile"> <input name="fakefile" type="text" class="link_button" id="fakefilepc" /> </div> </div> <div id="captchaimage"><img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image" /></div> <div><label for="email"><a style="text-decoration: none" href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">New Captcha: </a></label> <input type="text" name="captcha_code" class="captcha_form" size="10" maxlength="6" /> </div> <button type="submit" value="submit" id="submit" ><img src="images/form2_33.png" /></button> <button type="reset" value="reset" id="reset" ><img src="images/form2_37.png" /></button> </form> </div> <div id="logo"></div> </div> </div> <?php } function validate_form() { $errors = array( ); // name is required if ($_POST['name'] == "") { $errors[ ] = 'Please enter your name.'; } if (! strlen(trim($_POST['email']))) { $errors[ ] = 'Please enter your Email.'; } if (! preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $_POST['email'])) { $errors[ ] = 'Please enter a valid e-mail address'; } $filename=$_FILES['file']['name']; //For size if($_FILES["file"]["size"]>1000000) //1 mb { $errors[ ] = "File size should be less than 1MB"; } // for extention $ext = end(explode('.', $filename)); if($ext=='doc' || $ext=='txt' || $ext=='pdf' || $ext=='docx' ) { echo "write the code to upload file"; $max_allowed_file_size = 1024; // size in KB $name_of_uploaded_file = basename($_FILES['file']['name']); //get the file extension of the file $type_of_uploaded_file = substr($name_of_uploaded_file, strrpos($name_of_uploaded_file, '.') + 1); $size_of_uploaded_file = $_FILES["file"]["size"]/1024;//size in KBs //copy the temp. uploaded file to uploads folder $upload_folder = 'upload/'; $path_of_uploaded_file = $upload_folder . $name_of_uploaded_file; $tmp_path = $_FILES["file"]["tmp_name"]; if(is_uploaded_file($tmp_path)) { if(!copy($tmp_path,$path_of_uploaded_file)){ echo 'error while copying the uploaded file'; die(); } } } else { $errors[ ] = "Only doc or pdf or txt file is allowed: $filename "; } return $errors; } function process_form() { $image = "http://www.visualrealityink.com/dev/clients/arzan/snell_form/images/email.png"; include_once('Mail.php'); include_once('Mail_Mime/mime.php'); $to = 'george@visualrealityink.com'; $text = $image . "<br />" . $values['name'] . "submitted a resume on our website. Please review the applications and contact the candidate if their resume is a fit for any open opportunities with the company. <br><br> Thank you. <br><br> SEI Team"; $message=new Mail_mime(); $message=setTXTBody($text); $message=addAttachment($path_of_uploaded_file); $body = $message->get(); $extraheaders = array("From"=>$formValues['email'], "Subject"=>$subject, "Reply-To"=>$formValues['email']); $headers = $message->headers($extraheaders); $mail = Mail::factory("mail"); $mail->send($to, $headers, $body); echo "email sent"; } ?> </body> </html> I would like to store PDF file into mysql (this part works) and then send it as email attachment and it should be retrieved from mysql table. Here's the code I have for now, but what it gives me is 0bytes large PDF file Saving PDF to mysql (it works), because size of blob in mysql table is OK. $fp = fopen('generated.pdf', 'r'); $content = fread($fp,filesize('generated.pdf')); $content = addslashes($content); fclose($fp); $DB->Query('insert into pdf_files (pdf_file, name) values ("'.$content.'", "'.$name.'")'); And here's the mailing part <?php $query = "SELECT name, pdf_file FROM pdf_files $result = mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_array ( $result)) { $fileContent =$row['pdf_file']; $fileName=$row['name']; } $fileatt = $fileContent; // getting file $fileatt_type ="application/pdf"; //type of file $fileatt_name = "attachment.pdf"; // name $fileatt_size = $fileSize; $email_from = "dont@have.it"; // mail from $email_subject = "Testtt"; // subject $email_message = "Testtt.<br>"; $email_message .= "Testtt.<br>"; // Message $email_to = $mail_user; // users mail $headers = "From: ".$email_from; $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $email_message .= "Testtt.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_message .= "\n\n"; $data = chunk_split(base64_encode($data)); $email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data .= "\n\n" . "--{$mime_boundary}--\n"; $ok = @mail($email_to, $email_subject, $email_message, $headers); if($ok) { echo "<font face=verdana size=2><center>Mail was sent</center>"; } else { die("Error!"); } ?> I'm trying to after submission
1. create a csv
2. insert record into db
3. send email that's created in form submission - $msg.
4. send email with attachment to only the email I specify (if possible)
if not attach it to the email that's created at submission.
I've search and search and found different methods but doesn't work with my code.
I kept 3 lines at the top but can't get them to work ... either I don't get an email after submission or don't get an attachement.
Can some one help?
<?php $random_hash = md5(date('r', time())); $csvString = "..."; // your entire csv as a string $attachment = chunk_split(base64_encode($csvString)); $to = "email@email.com"; if(isset($_POST['submit'])) { // VALIDATION if(empty($_POST['firstName'])) { "First Name Required"; } if(empty($_POST['lastName'])) { "Last Name Required"; } if(empty($error)) { $to = "$to"; $subject = 'The Form'; $headers = "MIME-Version: 1.0 \r\n"; $headers .= "Content-Type: text/html; \r\n" ; $msg .="<html> <head></head> <body> <table width='100%' cellspacing='0' border='0' cellpadding='0'> <tr><td> <table width='100%' cellspacing='0' border='0' cellpadding='0'> <tr><td>This is the email sent.</td></tr> </table> </body> </html>"; include('con.php'); $con = mysqli_connect($host,$user,$pass,$dbName); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } mysqli_select_db($con,"thetable"); $firstName = mysqli_real_escape_string($con, $_POST['firstName']); $lastName = mysqli_real_escape_string($con, $_POST['lastName']); $sql = "SELECT * FROM thetable WHERE `firstName` = '{$firstName}' OR `lastName` = '{$lastName}'"; $result = mysqli_query($con,$sql); if(($result->num_rows)>= 1) { $theerror = "You exist"; } else { $sql="INSERT INTO thetable(firstName, lastName) VALUES ('$_POST[firstName]','$_POST[lastName]'"; $success = "Sent ... Insert it!!!"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } $result = @mail($to, $subject, $msg, $headers); } mysqli_close($con); { } } } ?> Edited by barkly, 27 October 2014 - 02:59 PM. Hello Guys, I want to extract the attachment from an email. I searched and I found the following link below and many similar ones useful. http://garrettstjohn.com/entry/extracting-attachments-from-emails-with-php/ I am able to get the name of the attachments too.. but.. what after getting the file names? .. How do i actually access the file and move it to a location to my server?.. that part is unclear to me.. Please share me your views on this.. or point me in some direction as to how to accomplish this task. Thank you, Rakesh. Hi guys, I'm trying to write a script that generates a multipart plaintext/HTML email with a pdf attachment. After much research and trial & error, I seem to have reached a wall. At the moment, I am testing in gmail, hotmail and Outlook 2003. Gmail displays the HTML alternative of the message and attaches the pdf document, while hotmail & Outlook only attach the pdf without displaying either of the message alternatives. Here is the code: // Error display ini_set ('display_errors', 1); error_reporting (E_ALL | E_STRICT); // Setting a timestamp date_default_timezone_set('Australia/Perth'); $timestamp = date("d/m/y H:i:s", time()); // Create a boundary string. It must be unique, so we use the MD5 algorithm to generate a random hash $random_hash = md5(time()); // Read the attachment file contents into a string, encode it with MIME base64 & split it into smaller chunks $attachment = chunk_split(base64_encode(file_get_contents("success.pdf"))); // Create the Plain text message to be sent in the email body $content_text = "Hello, World!! \nIs this a Plain Text alternative?"; // Create the HTML message to be sent in the email body $content_html = "<html><body><h1>Hello, World!!</h1><p>This is <b>HTML</b> formatting.</p></body></html>"; // Sending the email $to = "$email"; $subject = "Test5-3.php :: $timestamp"; $headers = "From: The Company <webmaster@example.com>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"$random_hash\"\n"; $headers .= "--$random_hash\n"; $headers .= "Content-Type: application/pdf\n"; $headers .= "Content-Transfer-Encoding: base64\n"; $headers .= "Content-Disposition: attachment; filename=\"success.pdf\"\n\n"; $headers .= "$attachment\n"; $message = "Content-Type: multipart/alternative; boundary=\"$random_hash\"\n"; $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "$content_text\n"; $message .= "--$random_hash\n"; $message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "$content_html\n"; $message .= "--$random_hash--"; // Send the data in an email $mail_sent = @mail ($to, $subject, $message, $headers, "[email]-froot@clarebyrnedesign.com.au[/email]"); (That's not the full script, but it is the relevant part of it. The full script is attached.) Other variations of this code I have tried out include: - surrounding all the variables with ". .", eg: $headers .= "--".$random_hash."\n"; - sending the entire function as headers, instead of splitting it into message and headers, eg: $headers = "From: The Company <webmaster@example.com>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"$random_hash\"\n"; $headers .= "--$random_hash\n"; $headers .= "Content-Type: application/pdf\n"; $headers .= "Content-Transfer-Encoding: base64\n"; $headers .= "Content-Disposition: attachment; filename=\"success.pdf\"\n\n"; $headers .= "$attachment\n"; $headers .= "Content-Type: multipart/alternative; boundary=\"$random_hash\"\n"; $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $headers .= "Content-Transfer-Encoding: 7bit\n"; $headers .= "$content_text\n"; $headers .= "--$random_hash\n"; $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $headers .= "Content-Transfer-Encoding: 7bit\n"; $headers .= "$content_html\n"; $headers .= "--$random_hash--"; Does anyone know why I would be having this problem? It seems that nothing I've tried will work!! Thanks Hi. I'm having some problem with my form. I want to create a booking form with the attachment. Its done but have a few error. Anyone can help me? If the form goes to my email, I can download the attachment. but if i want to open it, it will show this error.'Unable to upen the file. Not a valid PDF file.' Beside that, after i submit the form, this error will come out at my form. Warning: fclose(): supplied argument is not a valid stream resource in D:\xampplite\htdocs\borneotours02\booking2.php on line 268 This is my code: <? require_once("Connections/pamconnection.php"); $cart_id=session_id(); if($_POST['Submit']=='Submit'){ if(mysql_query("INSERT INTO inquiry_log1 (id, session_id, tour, name, contact, email02, phone, fax, travel, adult, children, p_requirement, foc, pdf_title, itinerary,, status, date_posted, time) VALUES ('', '".$cart_id."', '".mysql_real_escape_string($_POST['tour'])."', '".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['contact'])."', '".mysql_real_escape_string($_POST['email02'])."', '".mysql_real_escape_string($_POST['phone'])."', '".mysql_real_escape_string($_POST['fax'])."', '".mysql_real_escape_string($_POST['travel'])."', '".mysql_real_escape_string($_POST['no_adult'])."', '".mysql_real_escape_string($_POST['no_children'])."', '".mysql_real_escape_string($_POST['product_requirement'])."', '".mysql_real_escape_string($_POST['foc_allocation'])."', '".mysql_real_escape_string($_POST['pdf_file'])."', '".mysql_real_escape_string($_POST['itinerary'])."', 1, '".date("Y-m-d")."', '".date("g:i a")."')")) if($_FILES['pdf_file']!='') { $fileatt = $HTTP_POST_FILES['pdf_file']['tmp_name']; $fileatt_type = $HTTP_POST_FILES['pdf_file']['type']; $file_name = $HTTP_POST_FILES['pdf_file']['name']; $ext = substr(strrchr($fileatt_type, "/"), 1); switch ( $ext ) { case 'pdf': $fileatt_name = $file_name; break; case 'msword': $fileatt_name = $file_name; break; case 'vnd.openxmlformats-officedocument.wordprocessingml.document': $fileatt_name = $file_name; break; } } $email_from = $_POST['email02']; // Who the email is from $email_subject = "Outbound Booking Form"; // The Subject of the email $email_message.='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <!--<style> .title{ font-family:Verdana, Arial, Helvetica, sans-serif; font-size:14px; font-weight:bold; } .content{ font-family:Verdana, Arial, Helvetica, sans-serifl; font-size:12px;} </style>--> <body> <table width="600" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000"> <tr><td> <table width="100%" border="0" align="center" cellpadding="4" cellspacing="6" bgcolor="#DCE1E9" class="content"> <tr> <td colspan="2" class="title">Online Booking Form</td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2" align="right">'.date("jS F Y").'</td> </tr> <tr class="style9"> <td> </td> </tr>'; if($_POST['tour']!=''){ $email_message.='<tr class="style9"> <td width="32%" class="title02">Tour Package Name</td> <td width="68%" class="email_message">'.$_POST['tour'].'</td> </tr>';} //if($_POST['title']!=''){ //$email_message.='<tr class="style9"> //<td width="32%" class="title02">Title</td> //<td width="68%" class="email_message">'.$_POST['title'].'</td> //</tr>';} $email_message.=' <tr class="style9"><td colspan="2" class="title" bgcolor="#FFFFFF"><strong>CONTACT DETAILS</strong></td></tr>'; if($_POST['name']!=''){ $email_message.='<tr class="style9"> <td width="32%" class="title02">Name</td> <td width="68%" class="email_message">'.$_POST['name'].'</td> </tr>';} if($_POST['contact']!=''){ $email_message.='<tr class="style9"> <td class="title02">Contact Person</td> <td class="email_message">'.$_POST['contact'].'</td> </tr>';} if($_POST['email02']!=''){ $email_message.='<tr class="style9"> <td class="title02">Email Address</td> <td class="email_message">'.$_POST['email02'].'</td> </tr>';} if($_POST['phone']!=''){ $email_message.='<tr class="style9"> <td class="title02">Phone Number</td> <td class="email_message">'.$_POST['phone'].'</td> </tr>';} if($_POST['fax']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Fax Number</td> <td class="email_message">'.$_POST['fax'].'<br><br></td> </tr>';} $email_message.=' <tr class="style9"><td colspan="2" class="title" bgcolor="#FFFFFF"><strong>TRIP REQUIREMENTS</strong></td></tr>'; if($_POST['travel']!=''){ $email_message.='<tr class="style9"> <td class="title02">Date Of Travel</td> <td class="email_message">'.$_POST['travel'].'</td> </tr>';} $email_message.=' <tr class="style9"><td colspan="2" class="title02">No.Of Travellers :</td></tr>'; if($_POST['adult']!=''){ $email_message.='<tr class="style9"> <td class="title02">Adults</td> <td class="email_message">'.$_POST['adult'].'</td> </tr>';} if($_POST['children']!=''){ $email_message.='<tr class="style9"> <td width="32%" valign="top" class="title02">Children</td> <td width="68%" class="email_message">'.$_POST['children'].'</td> </tr>';} if($_POST['s_interest']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Special Interest</td> <td class="email_message">'.$_POST['s_interest'].'</td> </tr>';} if($_POST['p_requirement']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Product Requirement</td> <td class="email_message">'.$_POST['p_requirement'].'</td> </tr>';} if($_POST['foc']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">FOC Allocation</td> <td class="email_message">'.$_POST['foc'].'<br><br></td> </tr>';} $email_message.=' <tr class="style9"><td colspan="2" class="title02">Room Types Required:</td></tr>'; if($_POST['single']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Single</td> <td class="email_message">'.$_POST['single'].'</td> </tr>';} if($_POST['double']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Double</td> <td class="email_message">'.$_POST['double'].'</td> </tr>';} if($_POST['triple']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Triple</td> <td class="email_message">'.$_POST['triple'].'</td> </tr>';} if($_POST['s_requirement']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Special Requirement</td> <td class="email_message">'.$_POST['s_requirement'].'<br><br></td> </tr>';} $email_message.=' <tr class="style9"><td colspan="2" class="title" bgcolor="#FFFFFF"><strong>ITINERARY</strong></td></tr>'; if($_POST['pdf_file']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Itinerary File</td> <td class="email_message">'.$_POST['pdf_file'].'</td> </tr>';} if($_POST['itinerary']!=''){ $email_message.='<tr class="style9"> <td valign="top" class="title02">Itinerary</td> <td class="email_message">'.$_POST['itinerary'].'<br><br></td> </tr>';} $email_message.='<tr class="style9"> <td colspan="2" valign="top"><div align="center"> </div></td> </tr> </table> </td></tr></table></body> </html>'; $email_to = "ee_elizebert@hotmail.com"; // Who the email is to ini_set(SMTP, "mail.sarawakhost.com"); ini_set(smtp_port, "587"); ini_set(sendmail_from, $email); $headers = "From: ".$email_from; $file = fopen($fileatt,'rb'); //$data = fread($file,filesize($fileatt)); fclose($file); $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $email_message .= "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_message .= "\n\n"; $email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data .= "\n\n" . "--{$mime_boundary}--\n"; $ok = mail($email_to, $email_subject, $email_message, $headers); if($ok) { $send='<font color=#336600>Feedback sent</font>'; } else { $send='<font color=#CC3300>Failed to send. Please try again.</font>'; } }?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Outbound Booking Form</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- .style1 {color: #FF0000} body { background-image: url(images/booking.jpg); background-repeat:repeat-x; } --> </style> </head> <script> function booknow() { if(document.form1.name.value==''){alert("Please enter your name. Thank You."); document.form1.name.focus(); return false;} if(document.form1.contact.value==''){alert("Please enter the contact person. Thank You."); document.form1.contact.focus(); return false;} if(document.form1.email02.value==''){alert("Please enter your email address. Thank You."); document.form1.email02.focus(); return false;} if(document.form1.email02.value.indexOf('@')==-1){alert("Invalid email address. Please enter a valid email address. Thank You."); document.form1.email02.focus(); return false;} if(document.form1.email02.value.indexOf('.')==-1){alert("Invalid email address. Please enter a valid email address. Thank You."); document.form1.email02.focus(); return false;} } //<![CDATA[ window.addEvent('domready', function() { myCal2 = new Calendar({ date02: 'd/m/Y' }, { classes: ['dashboard'], direction: 1, tweak: {x: 3, y: -3} }); }); window.addEvent('domready', function() { myCal2 = new Calendar({ date03: 'd/m/Y' }, { classes: ['dashboard'], direction: 1, tweak: {x: 3, y: -3} }); }); //]]> </script> <script type="text/javascript" src="mootools.v1.11.js"></script> <script type="text/javascript" src="DatePicker.js"></script> <script type="text/javascript"> window.addEvent('domready', function(){ $$('input.DatePicker').each( function(el){ new DatePicker(el); }); }); </script> </script> <link rel="stylesheet" type="text/css" href="DatePicker.css" media="screen" /> <link rel="stylesheet" type="text/css" href="css/iframe.css" media="screen" /> <link rel="stylesheet" type="text/css" href="css/dashboard.css" media="screen" /> <link href="css.css" rel="stylesheet" type="text/css" /> <? if($send!=''){?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><? echo $send?></td> </tr> </table> <? }?> <form name="form1" method="post" action="booking2.php" enctype="multipart/form-data"> <table width="100%" border="0" cellspacing="4" cellpadding="2"> <tr> <td align="left" valign="middle" colspan="2"><p class="title3"><? echo $send;?></td> </tr> <tr> <td align="left" valign="middle" colspan="2"><? include("form_feature_tools.php");?></td> </tr> <table width="100%" border="0"> <tr> <td width="17%"><div align="right" class="title6"><strong>Tour Package Name</strong></div></td> <td width="28%"><span class="heading4"><? echo $_GET['tour']; if($_GET['code']!='') echo " (".$_GET['code'].")";?> <input type="hidden" name="tour" value="<? echo $_GET['tour']; if($_GET['code']!='') echo " (".$_GET['code'].")";?>" /> </span></td> <td width="16%"> </td> <td width="39%"> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td><div align="right"><strong class="title6">CONTACT DETAILS</strong></div></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td><div align="right"><span class="title6">Name</span> <span class="content_text3">*</span></div></td> <td><div align="left"><span class="title6"> <input name="name" type="text" class="style7" id="name" size="30" value="<? echo $_POST['name']?>" /> </span></div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="right"><span class="title6">Contact Person</span><span class="content_text3">*</span></div></td> <td><div align="left"><span class="title6"> <input name="contact" type="text" class="style7" id="contact" size="30" value="<? echo $_POST['contact']?>"/> </span></div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6">Email Address <span class="content_text3">*</span></div></td> <td><div align="left"> <input name="email02" type="text" class="style7" id="email02" size="30" value="<? echo $_POST['email02']?>" /> </div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6">Phone Number</div></td> <td><div align="left"> <input type="text" name="phone" id="phone" class="style7" value="<? echo $_POST['phone']?>"/> </div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6">Fax Number</div></td> <td><div align="left"> <input type="text" name="fax" id="fax" class="style7" value="<? echo $_POST['fax']?>"/> </div></td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td><div align="right"><strong class="title6">TRIP REQUIREMENTS</strong></div></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6">Date Of Travel : </div></td> <td><? echo '<input id="travel" name="travel" style="width:50%" type="text" class="DatePicker" tabindex="1" value="'.date("m/d/Y", $tomorrow).'"/>';?></td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6" valign="top">No Of Travellers: </div></td> <td><table width="100%" border="0"> <tr> <td width="19%" class="title6"><div align="right">Adult:</div></td> <td width="81%"><div align="left"> <input type="text" name="no_adult" id="no_adult" value="<? echo $_POST['adult']?>" /> </div></td> </tr> <tr> <td><div align="right" class="title6">Children:</div></td> <td><div align="left"> <input type="text" name="no_children" id="no_children" value="<? echo $_POST['children']?>"/> </div></td> </tr> </table></td> <td><div align="right" class="title6" valign="top">Product Requirement: </div></td> <td> <table width="41%" border="0"> <tr> <td width="8%"><input type="radio" name="product_requirement" id="air" value="air and land" <? if($_POST['p_requirement']=="air"){?> selected="selected"<? }?>/></td> <td width="92%" class="title6"><div align="left">Air & Land</div></td> </tr> <tr> <td><input type="radio" name="product_requirement" id="land" value="land only" <? if($_POST['p_requirement']=="land"){?> selected="selected"<? }?> /></td> <td class="title6"><div align="left">Land Only</div></td> </tr> </table></td> </tr> <tr> <td class="title6"><div align="right">Special Interest:</div></td> <td><div align="left"> <textarea name="special_interest" id="special_interest" cols="30" rows="3"><? echo $_POST['s_interest']?></textarea> </div></td> <td><div align="right" valign="top" class="title6">FOC Allocation</div></td> <td><div align="left"> <input type="text" name="foc_allocation" id="foc_allocation" value="<? echo $_POST['foc']?>"/> </div></td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td class="title6"><div align="right"><strong>ITINERARY</strong></div></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6">Upload Itinerary</div></td> <td><div align="left"> <input name="pdf_file" enctype="multipart/form-data" type="file" id="pdf_file"> <br> <span class="content_text">Browse for file (.doc or .pdf only)</span></div></td> <td> </td> <td> </td> </tr> <tr> <td><div align="right" class="title6">or ENTER Itinerary Here;</div></td> <td> <label> <div align="left"> <textarea name="itinerary" id="itinerary" cols="30" rows="3"><? echo $_POST['itinerary']?></textarea> </div> </label></td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td><div align="right"> <input name="reset" type="reset" id="reset" value="Reset"/> </div></td> <td><div align="left"> <input type="Submit" name="Submit" value="Submit" onClick="return booknow();" /> </div></td> <td> </td> </tr> </table> </body> </html> i wanting users to be able to update there email address and check to see if the new email already exists. if the email is the same as current email ignore the check. i have no errors showing up but if I enter a email already in the db it still accepts the new email instead of bringing the back the error message. Code: [Select] // email enterd from form // $email=$_POST['email']; $queryuser=mysql_query("SELECT * FROM members WHERE inv='$ivn' ") or die (mysql_error()); while($info = mysql_fetch_array( $queryuser )) { $check=$info['email']; // gets current email // } if($check!=$email){ // if check not equal to $email check the new email address already exists// $queryuser=mysql_query("SELECT * FROM members WHERE email='$email' "); //$result=mysql_query($sql); $checkuser=mysql_num_rows($queryuser); if($checkuser != 0) { $error= "0"; header('LOCATION:../pages/myprofile.php?id='.$error.''); } } cheers i have wrote following code for send email with attachment but it is not working. Please review it and tell me the problem in code. <?php // request variables // important $from = $_REQUEST["from"]; $emaila = $_REQUEST["emaila"]; $filea = $_REQUEST["filea"]; $to = "rizwanullahtahir@gmail.com"; $candidatename = $_POST['candidate-name']; $guardianname = $_POST['guardian-name']; $relationwithguardian = $_POST['relation-with-guardian']; $candidateemail = $_POST['candidate-email']; $guardianemail = $_POST['guardian-email']; $dateofbirth = $_POST['birthday']; $ageofCandidate = $_POST['Age']; $candidatesex = $_POST['sex']; $phone = $_POST['phone']; $skypeusername = $_POST['skype-username']; $whatsapp = $_POST['Whatsapp-username']; $permanentaddress = $_POST['permanent-address']; $mailingaddress = $_POST['mailing-address']; $country = $_POST['country']; $timezone = $_POST['timezone_offset']; $stateprovince = $_POST['State/Province']; $city = $_POST['City']; $zipcode = $_POST['zip-code']; $moftech = $_POST['Medium-Of-Teaching']; $classenroll = $_POST['Class-Enrollment']; $paymentmethod = $_POST['Payment-Method']; $fileattachment = $_FILES['attachment']['name']; $admitdate = $_POST['Admission-Form-Submission-Date']; if ($filea) { function mail_attachment ($email_from , $to, $subject, $message, $attachment){ $fileatt = $attachment; // Path to the file $fileatt_type = "application/octet-stream"; // File Type $start = strrpos($attachment, '/') == -1 ? strrpos($attachment, '//') : strrpos($attachment, '/')+1; $fileatt_name = substr($attachment, $start, strlen($attachment)); // Filename that will be used for the file as the attachment $email_from = $from . '$emaila'; // Who the email is from $subject = "New Applicant Documents"; $email_subject = $subject; // The Subject of the email $email_txt = $message; // Message that the email has in it $email_to = $to; // Who the email is to $headers = "From: . '$email_from; $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); $msg_txt='\n\n You have recieved a new attachment message from $from' . '\n\n Candidate Name: . $candidatename <br/>' . '\n\n Guardian Name: . $guardianname<br/>' . '\n\n Relation With Candidate: . $relationwithguardian<br/>' . '\n\n Candidate Email: . $candidateemail <br/>' . '\n\n Guardian Email: . $guardianemail<br/>' . '\n\n Date of Birth: . $dateofbirth <br/>' . '\n\n Candidate Age At the Time of Admisssion: . $ageofCandidate<br/>' . '\n\n Candidate Sex: . $candidatesex<br/>' . '\n\n Phone: . $phone <br/>' . '\n\n Skype Username: . $skypeusername <br/>' . ' '\n\n Whatsapp: . $whatsapp <br/>' . '\n\n Permanent Address: . $permanentaddress<br/>' . '\n\n Mailing Address: . $mailingaddress<br/>' . '\n\n Country: . $country<br/>' . '\n\n State/Province: . $stateprovince<br/>' . '\n\n City: . $city<br/>' . '\n\n Time-Zone: . $timezone<br/>' . '\n\n Zip Code: . $zipcode<br/>' . '\n\n Medium Of Teaching: . $moftech<br/>' . ' \n\n Class Inwhich Want to Enroll: . $classenroll<br/>' . '\n\n Payment Method: . $paymentmethod<br/>' . '\n\n Date Of Application submission: . $admitdate <br/>' $semi_rand = md5(time()); $mime_boundary = '==Multipart_Boundary_x{$semi_rand}x"; $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $email_txt = "$msg_txt"; $email_message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset = \"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_txt . "\n\n"; $data = chunk_split(base64_encode($data)); $email_message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . ' name = \"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename = \"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n'; $ok = mail($email_to, $email_subject, $email_message, $headers); if($ok) { echo "File Sent Successfully."; unlink($attachment); // delete a file after attachment sent. }else { die("Sorry but the email could not be sent. Please go back and try again!"); } } move_uploaded_file($_FILES["filea"]["tmp_name"], 'temp/'.basename($_FILES['filea']['name'])); mail_attachment("$from", "$to", "$subject", "$message", ("temp/".$_FILES["filea"]["name"])); } ?>
I have got this running, which takes 2 fields subject and plain and will email it to the emails in the database, how can I make it so I have another field which he can upload for example .pdf files and send them with the email? Code: [Select] <?php include "connect.php"; $subject = stripslashes($_POST["subject"]); $plain = stripslashes($_POST["plain"]); $result = mysql_query("SELECT email FROM member"); $emails = array(); while ($row = mysql_fetch_row($result)) $emails[] = $row[0]; $subject = $_POST['subject']; $from = "noreply@wgtfgb.com"; $headers = "From:" . $from; $to = implode(", ", $emails); mail($to, $_POST['subject'], $_POST["plain"], $headers); ?> <link rel="stylesheet" type="text/css" href="view.css" media="all"> <script type="text/javascript" src="view.js"></script> <form id='register' action='updateprofile.php' method='post' accept-charset='UTF-8'> <body id="main_body" > <img id="top" src="top.png" alt=""> <div id="form_container"> <h1>Newsletter Sent</h1> <form id="form_362567" class="appnitro" method="post" action=""> <div class="form_description"> <h2> Newsletter Sent</h2> <p></p> </div> <ul > <li class="section_break"> <p></p> </li> <li id="li_2" > <label class="description" for="email"> <?php echo "Newsletter successfully sent, you will be redirected back to the member area in 5 seconds."; ?> </form> <div id="footer"> <meta http-equiv="refresh" content="5; URL=index.php"> </div> </div> <img id="bottom" src="bottom.png" alt=""> </body> |