带有上传文件附件的PHP电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有上传文件附件的PHP电子邮件相关的知识,希望对你有一定的参考价值。
A simple one page form with attachment that is meant to go straight to the email and not uploaded to the server. Emails an html version, a PlainText version and the attachment if there is one.
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Form was submitted, do some checks and if it passes send the email $errors = 0; // Keep track of the number of validation errors $errorLog = ""; // Get some details on what didn't validate $message = ""; // Starter email message $successLog = ""; // Get some details on what went through // Sanitize the inputs foreach ( $_POST as $formName => $formValue ) { foreach ( $formValue as $formName2 => $formValue2 ) { $request[$formName][$formName2] = htmlspecialchars(strip_tags($formValue2)); } } else } // Validate required form fields foreach ( $request as $name => $value ) // Is this a required value, if so and it's empty track the errors { $errors++; $errorLog .= "The field <strong>".$displayName."</strong> is required.<br />"; } } { $errors++; $errorLog .= "The field <strong>".$displayName."</strong> must be a valid email address.<br />"; } } if ( $errors == 0 ) { // Validation passed, get the email ready to send $subject = "Form Submission from ".$request["First_Name"]." ".$request["Last_Name"]; $message .= "Following is an application submitted<br /><br /> <table>"; foreach ( $request as $name => $value ) $message .= " <tr><th align='right' valign='top'><strong>".$displayName."</strong>:</th><td valign='top'>".$value."</td></tr>"; } //Normal headers "; $headers .= "Reply-to: ".$request["First_Name"]." ".$request["Last_Name"]." <".$request["Email"]."> "; $headers .= "MIME-Version: 1.0 "; $headers .= "Content-Type: multipart/alternative; boundary=".$num." "; // These two steps to help avoid spam "; "; // Text version $headers .= " --".$num." "; $headers .= "Content-Type: text/plain; charset=iso-8859-1 "; $headers .= "Content-Transfer-Encoding: 8bit "; // HTML message $headers .= " --".$num." "; $headers .= "Content-Type: text/html; charset=iso-8859-1 "; $headers .= "".$message." "; { // If a file was uploaded, do some processing $filetype = $_FILES["File"]["type"]; $filesize = $_FILES["File"]["size"]; $filetemp = $_FILES["File"]["tmp_name"]; { $errors++; $errorLog .= "Upload filetype not supported."; } else if ( $filesize > 2000000 ) { $errors++; $errorLog .= "File size too high, up to 2MB is allowed."; } else { // Looks like the file is good, send it with the email // Attachment headers $headers .= " --".$num." "; $headers .= "Content-Type:".$filetype." "; $headers .= "name="".$filename.""r "; $headers .= "Content-Disposition: attachment; "; $headers .= "filename="".$filename."" "; $headers .= "".$file." "; } } if ( $errors == 0 ) { $successLog .= "<b>Thank you for your interest<br />Your form has been submitted.</b>"; } else { $errorLog .= "Message failed to send, please refresh to try again"; } // Send email } } } ?> <!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>" name="frmApplication" id="frmApplication"> <fieldset><legend>Personal Information</legend> <table cellpadding="0" cellspacing="6" border="0" class="appFormTable"> <tr> <td valign="top" colspan="3"> <label for="First_Name" class="required">First Name*</label> <input type="text" name="First_Name" id="First_Name" maxlength="40" value="<?php echo @$request['First_Name']; ?>" /> </td> <td valign="top" colspan="2"> <label for="Middle_Initial" class="required">Middle Initial*</label> <input type="text" name="Middle_Initial" id="Middle_Initial" maxlength="1" value="<?php echo @$request['Middle_Initial']; ?>" /> </td> <td valign="top" colspan="3"> <label for="Last_Name" class="required">Last Name*</label> <input type="text" name="Last_Name" id="Last_Name" maxlength="40" value="<?php echo @$request['Last_Name']; ?>" /> </td> </tr> <tr> <td valign="top" colspan="8"> <label for="Address" class="required">Address*</label> <input type="text" name="Address" id="Address" maxlength="100" value="<?php echo @$request['Address']; ?>" /> </td> </tr> <tr> <td valign="top" colspan="3"> <label for="City" class="required">City*</label> <input type="text" name="City" id="City" maxlength="50" value="<?php echo @$request['City']; ?>" /> </td> <td valign="top" colspan="3"> <label for="State" class="required">State*</label> <select name="State" id="State"> <option value="" <?php if ( @$request['State'] == "") { echo "selected='selected'"; } ?>>- Select a State -</option> <option value="AL" <?php if ( @$request['State'] == "AL") { echo "selected='selected'"; } ?>>Alabama</option> <option value="AK" <?php if ( @$request['State'] == "AK") { echo "selected='selected'"; } ?>>Alaska</option> <option value="AZ" <?php if ( @$request['State'] == "AZ") { echo "selected='selected'"; } ?>>Arizona</option> <option value="AR" <?php if ( @$request['State'] == "AR") { echo "selected='selected'"; } ?>>Arkansas</option> <option value="CA" <?php if ( @$request['State'] == "CA") { echo "selected='selected'"; } ?>>California</option> <option value="CO" <?php if ( @$request['State'] == "CO") { echo "selected='selected'"; } ?>>Colorado</option> <option value="CT" <?php if ( @$request['State'] == "CT") { echo "selected='selected'"; } ?>>Connecticut</option> <option value="DE" <?php if ( @$request['State'] == "DE") { echo "selected='selected'"; } ?>>Delaware</option> <option value="DC" <?php if ( @$request['State'] == "DC") { echo "selected='selected'"; } ?>>District Of Columbia</option> <option value="FL" <?php if ( @$request['State'] == "FL") { echo "selected='selected'"; } ?>>Florida</option> <option value="GA" <?php if ( @$request['State'] == "GA") { echo "selected='selected'"; } ?>>Georgia</option> <option value="HI" <?php if ( @$request['State'] == "HI") { echo "selected='selected'"; } ?>>Hawaii</option> <option value="ID" <?php if ( @$request['State'] == "ID") { echo "selected='selected'"; } ?>>Idaho</option> <option value="IL" <?php if ( @$request['State'] == "IL") { echo "selected='selected'"; } ?>>Illinois</option> <option value="IN" <?php if ( @$request['State'] == "IN") { echo "selected='selected'"; } ?>>Indiana</option> <option value="IA" <?php if ( @$request['State'] == "IA") { echo "selected='selected'"; } ?>>Iowa</option> <option value="KS" <?php if ( @$request['State'] == "KS") { echo "selected='selected'"; } ?>>Kansas</option> <option value="KY" <?php if ( @$request['State'] == "KY") { echo "selected='selected'"; } ?>>Kentucky</option> <option value="LA" <?php if ( @$request['State'] == "LA") { echo "selected='selected'"; } ?>>Louisiana</option> <option value="ME" <?php if ( @$request['State'] == "ME") { echo "selected='selected'"; } ?>>Maine</option> <option value="MD" <?php if ( @$request['State'] == "MD") { echo "selected='selected'"; } ?>>Maryland</option> <option value="MA" <?php if ( @$request['State'] == "MA") { echo "selected='selected'"; } ?>>Massachusetts</option> <option value="MI" <?php if ( @$request['State'] == "MI") { echo "selected='selected'"; } ?>>Michigan</option> <option value="MN" <?php if ( @$request['State'] == "MN") { echo "selected='selected'"; } ?>>Minnesota</option> <option value="MS" <?php if ( @$request['State'] == "MS") { echo "selected='selected'"; } ?>>Mississippi</option> <option value="MO" <?php if ( @$request['State'] == "MO") { echo "selected='selected'"; } ?>>Missouri</option> <option value="MT" <?php if ( @$request['State'] == "MT") { echo "selected='selected'"; } ?>>Montana</option> <option value="NE" <?php if ( @$request['State'] == "NE") { echo "selected='selected'"; } ?>>Nebraska</option> <option value="NV" <?php if ( @$request['State'] == "NV") { echo "selected='selected'"; } ?>>Nevada</option> <option value="NH" <?php if ( @$request['State'] == "NH") { echo "selected='selected'"; } ?>>New Hampshire</option> <option value="NJ" <?php if ( @$request['State'] == "NJ") { echo "selected='selected'"; } ?>>New Jersey</option> <option value="NM" <?php if ( @$request['State'] == "NM") { echo "selected='selected'"; } ?>>New Mexico</option> <option value="NY" <?php if ( @$request['State'] == "NY") { echo "selected='selected'"; } ?>>New York</option> <option value="NC" <?php if ( @$request['State'] == "NC") { echo "selected='selected'"; } ?>>North Carolina</option> <option value="ND" <?php if ( @$request['State'] == "ND") { echo "selected='selected'"; } ?>>North Dakota</option> <option value="OH" <?php if ( @$request['State'] == "OH") { echo "selected='selected'"; } ?>>Ohio</option> <option value="OK" <?php if ( @$request['State'] == "OK") { echo "selected='selected'"; } ?>>Oklahoma</option> <option value="OR" <?php if ( @$request['State'] == "OR") { echo "selected='selected'"; } ?>>Oregon</option> <option value="PA" <?php if ( @$request['State'] == "PA") { echo "selected='selected'"; } ?>>Pennsylvania</option> <option value="RI" <?php if ( @$request['State'] == "RI") { echo "selected='selected'"; } ?>>Rhode Island</option> <option value="SC" <?php if ( @$request['State'] == "SC") { echo "selected='selected'"; } ?>>South Carolina</option> <option value="SD" <?php if ( @$request['State'] == "SD") { echo "selected='selected'"; } ?>>South Dakota</option> <option value="TN" <?php if ( @$request['State'] == "TN") { echo "selected='selected'"; } ?>>Tennessee</option> <option value="TX" <?php if ( @$request['State'] == "TX") { echo "selected='selected'"; } ?>>Texas</option> <option value="UT" <?php if ( @$request['State'] == "UT") { echo "selected='selected'"; } ?>>Utah</option> <option value="VT" <?php if ( @$request['State'] == "VT") { echo "selected='selected'"; } ?>>Vermont</option> <option value="VA" <?php if ( @$request['State'] == "VA") { echo "selected='selected'"; } ?>>Virginia</option> <option value="WA" <?php if ( @$request['State'] == "WA") { echo "selected='selected'"; } ?>>Washington</option> <option value="WV" <?php if ( @$request['State'] == "WV") { echo "selected='selected'"; } ?>>West Virginia</option> <option value="WI" <?php if ( @$request['State'] == "WI") { echo "selected='selected'"; } ?>>Wisconsin</option> <option value="WY" <?php if ( @$request['State'] == "WY") { echo "selected='selected'"; } ?>>Wyoming</option> </select> </td> <td valign="top" colspan="2"> <label for="Zip" class="required">Zip*</label> <input type="text" name="Zip" id="Zip" maxlength="10" value="<?php echo @$request['Zip']; ?>" /> </td> </tr> <tr> <td valign="top" colspan="4"> <label for="Phone_1" class="required">Phone 1*</label> <input type="text" name="Phone_1" id="Phone_1" maxlength="20" value="<?php echo @$request['Phone_1']; ?>" /> </td> <td valign="top" colspan="4"> <label for="Phone_2">Phone 2</label> <input type="text" name="Phone_2" id="Phone_2" maxlength="20" value="<?php echo @$request['Phone_2']; ?>" /> </td> </tr> <tr> <td valign="top" colspan="8"> <label for="Email" class="required">Email Address*</label> <input type="text" name="Email" id="Email" maxlength="100" value="<?php echo @$request['Email']; ?>" /> </td> </tr> <tr> <td valign="top" colspan="8"> <div id="Resume_Format_Attach"> <p><small>Supported file types are doc,docx,odt,pdf,rtf,txt</small></p> <input type="hidden" name="max_file_size" value="2000000" /> <input type="file" name="Resume_File" id="Resume_File" /> </div> </td> </tr> </table> </fieldset> <div align="center"><input type="submit" name="submit" value="Submit Form" /></div> </form> </body> </html>
以上是关于带有上传文件附件的PHP电子邮件的主要内容,如果未能解决你的问题,请参考以下文章