I am trying to get a form to work on my website, but everytime I try to test the form I get the following error after clicking "Send email."
"ERROR in mail server. Sorry, your email could not be sent at this time."
Here is the code for my mail_module file:
<?php
//----------------------------------------------
function checkfileatt($fname,$fsize){
global $max_size;
global $banned_ext;
$err="No file attached";
//Checking file type in or out of banned file extensions list
$pos1=strrchr($fname,".");
$ftype=str_replace(".","",$pos1);
$blist=explode("|",$banned_ext);
for($i=0;$i<sizeof($blist)-1;$i++){
if($ftype==$blist[$i]) $err="ERROR: Your file extension (<b>*.$ftype</b>) is not be accepted. Please click your browser's back button and submit an acceptable file.";
}
//Check file size
if(round($fsize/1024)>$max_size) $err="ERROR: Your file size (<b>" .round($fsize/1024) ."</b> Kb) is too large. We only accept <b>$max_size</b> Kb. Please click your browser's back button and send a smaller file.";
//Return the value
return $err;
}
function formathtml($text){
$text=stripslashes($text);
$text=str_replace("\r\n","<BR>",$text);
$text=str_replace("\n","<BR>",$text);
return $text;
}
function checkemail($email){
if(!eregi("^[A-za-z0-9\_\.-]+@[A-za-z0-9\_\.-]+.[A-za-z0-9\_-]+.*",$email) || empty($email))
return FALSE;
else return TRUE;
}
//----------------------------------------------
if($mail_mode==0) $email_to=$_POST["email_to_anonymous"];
else $email_to=$my_email;
if($version=="demo") {
$_POST["email_from"]=$_POST["anonymous@anonymous-server.com"];
$_POST["real_email_message"].="<br>------------<br>Demo email sent from <a href=http://obiewebsite.sourceforge.net target=_blank>[url]http://ObieWebsite.SourceForge.Net[/url]</a><br>Get more PHP and Javascripts for FREE!<br>";
}
$kt=0;
//Checking valid email address
if(!checkemail($email_to)) $kt=1;
if(!checkemail($_POST["email_from"])) $kt=1;
if(empty($_POST["email_subject"])) $kt=2;
if($kt==1) print("<p>ERROR: Email address (From email or To email) is not correct. Please click your browser's back button and enter your email address.</p>");
else if($kt==2) print("<p>ERROR: Your email subject is blank. Please click your browser's back button and enter a subject.</p>");
if($kt==0){
//BEGIN //----------------------------------------------
$email_message=formathtml($real_email_message);
$chked=0;
if ($upfile == "none" || $upfile_size==0) $chked=1;
if (checkfileatt($upfile_name,$upfile_size)!="No file attached") $chked=1;
if($chked==0) {
copy($upfile, $upfile_name);
$fileatt=$upfile_name;
$fileatt_type=$upfile_type;
$fileatt_name=$upfile_name;
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
}
$headers = "From: ".$_POST["email_from"];
$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";
$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";
$sending_ok = @mail($email_to, $_POST["email_subject"], $email_message, $headers);
if($chked==0) unlink($upfile_name);
//END mode 3 and 0//----------------------------------------------
//Print the email result
if($sending_ok){
print("<title>Sending successful to $email_to</title><div align=center><p>Your email was sent successfully!!</p>");
}
else print("<title>Sending failed to $email_to</title><div align=center><p><b>ERROR in mail server</b>Sorry, your email could not be sent at this time.</p>");
print("
<p><table border=0 width=770 cellspacing=1 bgcolor=black><tr><td bgcolor=gray>
<p><u><b>Sent to email</b></u><br>
$email_to
<p><u><b>From email</b></u><br>
$email_from
<p><u><b>Email subject</b></u><br>
$email_subject
<p><u><b>Message</b></u><p>
<table border=0 width=770 cellspacing=1 style=\"border: 1 dotted #AED0F2;\"><tr><td>");
print(formathtml($real_email_message));
print("</td></tr></table><p><br></p>
<p align=center><a href=../index.htm title=\"Come back to my site\">Thank you!! Back to my site</a> or <a href=index.php>send me another email.</a></p>
<p><br></p>
</td></tr></table>
<p><b>Attachment status</b>
<p><table border=0 width=770 cellspacing=1 bgcolor=black><tr><td bgcolor=gray>");
if($mail_mode==0 || $mail_mode==1) {
if($chked==0) print("<p><b>$upfile_name</b><br>Filesize: " .round($upfile_size/1024) ." Kb | Filetype : $upfile_type");
else print("<p>" .checkfileatt($upfile_name,$upfile_size) ."</p>");
}
}
?>
The form can also be viewed at http://www.frankentek.com/php/index.php
This is my first experience with PHP so please take it easy on me.
Thanks in advance!!
-Scott