PHP Code:
<?php
// This will show in the browsers title bar and at the top of the form.
$websitename="Your Website";
// Allowed file types. Please remember to keep the format of this array, add the file extensions you want
// WITHOUT the dot. Please also be aware that certain file types (such as exe) may contain malware.
$allowtypes=array("zip", "rar", "txt", "doc", "jpg", "png", "gif", "bmp");
// What's your email address? Seperate email addresses with commas for multiple email addresses.
$myemail="your_email@domain.com";
// What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority="3";
// Should we allow visitors to attach files? How Many? 0 = Do not allow attachments,
// 1 = allow only 1 file to be attached, 2 = allow two files etc.
$allowattach="1";
// Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it,
// post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc..
$max_file_size="1024";
// Maximum file size for all attachments combined in KB. MAKE SURE your php.ini can handel it,
// post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc..
$max_file_total="2048";
// Value for the Submit Button
$submitvalue=" Send Email ";
// Value for the Reset Button
$resetvalue=" Reset Form ";
// Default subject? This will be sent if the user does not type in a subject
$defaultsubject="No Subject";
// Because many requested it, this feature will add a drop down box for the user to select a array of
// subjects that you specify below.
// True = Use this feature, False = do not use this feature
$use_subject_drop=false;
// This is an array of the email subjects the user can pick from. Make sure you keep the format of
// this array or you will get errors.
// Look at <http://novahq.net/forum/showthread.php?t=38718> for examples on how to use this feature.
$subjects=array("Department 1", "Department 2", "Department 3");
// This is an array of the email addresses for the array above. There must be an email FOR EACH
// array value specified above. You can have only 1 department if you want.
// YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly!
// The emails also must be in order for what you specify above!
// Seperate email addresses by a comma to send an email to multiple addresses.
$emails=array("dept_1@domain.com", "dept_2@domain.com", "dept_3@domain.com");
// This is the message that is sent after the email has been sent. You can use html here.
// If you want to redirect users to another page on your website use this:
// <script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";</script>
$thanksmessage="Thank you! Your email has been sent, we will respond shortly.";
/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line.
*/
// Function to get the extension of the uploaded file.
function get_ext($key) {
$key=strtolower(substr(strrchr($key, "."), 1));
$key=str_replace("jpeg", "jpg", $key);
return $key;
}
// Function used to attach files to the message
function phattach($file, $name, $boundary) {
$fp=fopen($file, "r");
$str=fread($fp, filesize($file));
$str=chunk_split(base64_encode($str));
$message="--".$boundary."\n";
$message.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
$message.="Content-disposition: attachment; filename=\"".$name."\"\n";
$message.="Content-Transfer-Encoding: base64\n";
$message.="\n";
$message.="$str\n";
$message.="\n";
return $message;
}
//Little bit of security from people forging headers. People are mean sometimes :(
function clean_msg($key) {
$key=str_replace("\r", "", $key);
$key=str_replace("\n", "", $key);
$find=array(
"/bcc\:/i",
"/Content\-Type\:/i",
"/Mime\-Type\:/i",
"/cc\:/i",
"/to\:/i"
);
$key=preg_replace($find, "", $key);
return $key;
}
// Initilize some variables
$error="";
$sent_mail=false;
// When the form is submitted
If($_POST['submit']==true) {
extract($_POST, EXTR_SKIP);
require_once('../class.phpmailer.php');
// Check the form for errors
If(trim($yourname)=="") {
$error.="You did not enter your name!<br />";
}
If(trim($youremail)=="") {
$error.="You did not enter your email!<br />";
} Elseif(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/", $youremail)) {
$error.="Invalid email address.<br />";
}
If(trim($emailsubject)=="") {
$emailsubject=$defaultsubject;
}
If(trim($yourmessage)=="") {
$error.="You did not enter a message!<br />";
}
// Verify Attchment info
If($allowattach > 0) {
// Get the total size of all uploaded files
If((array_sum($_FILES['attachment']['size'])) > ($max_file_total*1024)) {
$error.="The max size allowed for all your files is ".$max_file_total."kb<br />";
} Else {
//Loop through each of the files
For($i=0; $i <= $allowattach-1; $i++) {
If($_FILES['attachment']['name'][$i]) {
//Check if the file type uploaded is a valid file type.
If(!in_array(get_ext($_FILES['attachment']['name'][$i]), $allowtypes)) {
$error.= "Invalid file type for your file: ".$_FILES['attachment']['name'][$i]."<br />";
//Check the size of each file
} Elseif(($_FILES['attachment']['size'][$i]) > ($max_file_size*1024)) {
$error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big.<br />";
} // If in_array
} // If Files
} // For
} // Else array_sum($_FILES['attachment']['size'])
} // If Allowattach
If($error) {
$display_message=$error;
} Else {
If($use_subject_drop AND is_array($subjects) AND is_array($emails)) {
$subject_count=count($subjects);
$email_count=count($emails);
If($subject_count==$email_count) {
$myemail=$emails[$emailsubject];
$emailsubject=$subjects[$emailsubject];
} // If $subject_count
} // If $use_subject_drop
//Message
$message = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$message->IsSMTP(); // telling the class to use SMTP
// try {
$message->Host = "mail.yourdomain.com"; // SMTP server
$message->SMTPDebug = 2; // enables SMTP debug information (for testing)
$message->SMTPAuth = true; // enable SMTP authentication
$message->SMTPSecure = "ssl"; // sets the prefix to the servier
$message->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$message->Port = 465; // set the SMTP port for the GMAIL server
$message->Username = "$myemail"; // GMAIL username
$message->Password = "yourpassword"; // GMAIL password
$message->AddReplyTo("$myemail", 'First Last');
$message->AddAddress("$myemail", 'John Doe');
$message->AddBCC("$youremail", 'John Doe');
$message->SetFrom("$myemail", 'First Last');
$message->AddReplyTo("$myemail", 'First Last');
$message->Subject = 'PHPMailer Test Subject via mail(), advanced';
$message->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
$message->MsgHTML("$yourmessage");
//Add attachments to message
If($allowattach > 0) {
For($i=0; $i <= $allowattach-1; $i++) {
If($_FILES['attachment']['tmp_name'][$i]) {
$message->AddAttachment($_FILES['attachment']['tmp_name'][$i], $_FILES['attachment']['name'][$i]);
} //If $_FILES['attachment']['name'][$i]
} //For
} // If
$sent_mail=true;
$message->Send();
} // Else
} // If($_POST['submit']==true) {
/*
//================================================================================
* Start the form layout
//================================================================================
:- Use the html below to customize the form.
*/
?>
<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="tr_TR" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title><?php echo $websitename; ?> - Powered By phMailer</title>
<style type="text/css">
body{
background-color:#FFFFFF;
font-family: Verdana, Arial, sans-serif;
font-size: 12pt;
color: #000000;
}
.error_message{
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
color: #FF0000;
}
.thanks_message{
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
color: #000000;
}
a:link{
text-decoration:none;
color: #000000;
}
a:visited{
text-decoration:none;
color: #000000;
}
a:hover{
text-decoration:none;
color: #000000;
}
.table {
border-collapse:collapse;
border:1px solid #000000;
width:500px;
}
.table_header{
border:1px solid #070707;
background-color:#C03738;
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
font-weight:bold;
color: #FFFFFF;
text-align:center;
padding:2px;
}
.attach_info{
border:1px solid #070707;
background-color:#EBEBEB;
font-family: Verdana, Arial, sans-serif;
font-size: 8pt;
color: #000000;
padding:4px;
}
.table_body{
border:1px solid #070707;
background-color:#EBEBEB;
font-family: Verdana, Arial, sans-serif;
font-size: 10pt;
color: #000000;
padding:2px;
}
.table_footer{
border:1px solid #070707;
background-color:#C03738;
text-align:center;
padding:2px;
}
input,select,textarea {
font-family: Verdana, Arial, sans-serif;
font-size: 10pt;
color: #000000;
background-color:#AFAEAE;
border:1px solid #000000;
}
.copyright {
border:0px;
font-family: Verdana, Arial, sans-serif;
font-size: 9pt;
color: #000000;
text-align:right;
}
form{
padding:0px;
margin:0px;
}
</style>
<script type="text/javascript">
var error="";
e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
function Checkit(theform) {
if(theform.yourname.value=="") {
error+="You did not enter your name\n";
}
if(theform.youremail.value=="") {
error+="You did not enter your email\n";
} else if(!e_regex.test(theform.youremail.value)) {
error+="Invalid email address\n";
}
if(theform.yourmessage.value=="") {
error+="You did not enter your message\n";
}
if(error) {
alert('**The form returned the following errors:**\n\n' + error);
error="";
return false;
} else {
return true;
}
}
</script>
</head>
<body>
<?If($display_message) {?>
<div align="center" class="error_message"><b><?=$display_message;?></b></div>
<br />
<?}?>
<?If($sent_mail!=true) {?>
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);">
<table align="center" class="table">
<tr>
<td colspan="2" class="table_header" width="100%"><?=$websitename;?></td>
</tr>
<?If($allowattach > 0) {?>
<tr>
<td width="100%" class="attach_info" colspan="2">
<b>Valid Attachment Types:</b> <?=implode($allowtypes, ", ");?><br />
<b>Max size per file:</b> <?=$max_file_size?>kb.<br />
<b>Max combined file size:</b> <?=$max_file_total?>kb.
</td>
</tr>
<?}?>
<tr>
<td width="30%" class="table_body">Your Name:</td>
<td width="70%" class="table_body"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname));?>" /><span class="error_message">*</span></td>
</tr>
<tr>
<td width="30%" class="table_body">Your Email:</td>
<td width="70%" class="table_body"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail));?>" /><span class="error_message">*</span></td>
</tr>
<tr>
<td width="30%" class="table_body">Subject:</td>
<td width="70%" class="table_body">
<?If($use_subject_drop AND is_array($subjects)) {?>
<select name="emailsubject" size="1">
<?while(list($key,$val)=each($subjects)) {?>
<option value="<?=intval($key);?>"><?=htmlspecialchars(stripslashes($val));?></option>
<?}?>
</select>
<?} Else {?>
<input name="emailsubject" type="text" size="30" value="<?=stripslashes(htmlspecialchars($emailsubject));?>" />
<?}?>
</td>
</tr>
<?For($i=1;$i <= $allowattach; $i++) {?>
<tr>
<td width="30%" class="table_body">Attach File:</td>
<td width="70%" class="table_body"><input name="attachment[]" type="file" size="30" /></td>
</tr>
<?}?>
<tr>
<td colspan="2" width="100%" class="table_body">Your Message:<span class="error_message">*</span><br />
<div align="center">
<textarea name="yourmessage" rows="8" cols="60"><?=stripslashes(htmlspecialchars($yourmessage));?></textarea>
</div>
</td>
</tr>
<tr>
<td colspan="2" width="100%" class="table_footer">
<input type="hidden" name="submit" value="true" />
<input type="submit" value="<?=$submitvalue;?>" />
<input type="reset" value="<?=$resetvalue;?>" />
</td>
</tr>
</table>
</form>
<?} Else {?>
<div align="center" class="thanks_message"><?=$thanksmessage;?></div>
<br />
<br />
<?}
//Please leave this here.. It's very small and non-obtrusive. ?>
<table class="table" style="border:0px;" align="center">
<tr>
<td><div class="copyright">©<a href="http://www.phphq.net/?script=phMailer" target="_blank" title="Powered By phMailer 1.5.1 <www.phphq.net>">phMailer</a></div></td>
</tr>
</table>
</body>
</html>