I am using php's mail() function for the simple process of E-Mailing the input of a contact form to the respective person. The strange thing is that the form always used to process the E-Mails, but one day this all stopped, now the function returns false, but gives no error at all.
The site is on a shared host. When asked about this, they recommended I use the smtp relay xx.xxx.x.xxx
Correct me if I am wrong, but the mail() function does not provide provisions for this does it? Surely it is up to the HOST machine to have it's relays configured correctly?
My question is this: Does this seem like an error with the host config, or is it my code? Here is a sample of the mail code I have used:
$to = "xxx@xxx.co.za"; //to who?
$subject = "Website Contact: $mysubject";
$headers .= "MIME-Version: 1.0
";
$headers .= "From: $fname<$email1>
";
$headers .= "Reply-To: $email1
";
$headers .= "Return-Path:$email1
";
$headers .= "Content-Type: text/html; charset=UTF-8
";
$headers .= "Content-Transfer-Encoding: quoted-printable
";
$msg2 = nl2br($msg);
$send = mail($to, $subject, $msg2, $headers); //process mail
if(!$send):
//error stuff here
endif;
Many thanks,
Simon
@eisberg - I use a custom error handler like this:
//error handler function
function customError($errno, $errstr){
$err = "
".date('Y-m-d H:m:s')." Error: [$errno] $errstr";
$fh = fopen("errlog.txt", 'a+');
fwrite($fh, $err);
fclose($fh);
}
set_error_handler("customError", E_ALL);
Would that mean I need to change set_error_handler("customError", E_ALL);
to set_error_handler("customError", -1);
?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…