This is the first time I am using the mail function. I tried to send a mail using this and the code tells me it’s “successfully sent”, but I didn’t receive any mail. I’m confused reading lots of articles on this. Please help me.
<?php
if(isset($_POST['author'])&& isset($_POST['subject'])&& isset($_POST['text'])) {
//Email
$email_to = "lucy@yahoo.com";
$email_subject = "Query From HYPERMARKETS";
$name = $_POST['author']; // required
$sub = $_POST['subject']; // required
$comments = $_POST['text']; // required
echo "POST:".$name.$sub.$comments;
$error_message = "";
$string_exp = "^[a-z .'-]+$";
if(!strcmp($string_exp,$name)) {
$error_message .= 'The Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 5) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
echo ("<center><table border=1 cellspacing=5 cellpadding=5><tr><th>$error_message</th></tr></table></center>");
}
$email_message = "Form details below.\n\n";
$email_message .= "Name: ".$name."\n";
$email_message .= "Subject: ".$sub."\n";
$email_message .= "Comments: ".$comments."\n";
// create email headers
$headers = "From: mary@yahoo.com \r\n Reply-To: mary@yahoo.com \r\n" ;
if(@mail($email_to, $email_subject, $email_message, $headers))
echo "<center><table border=1 cellspacing=5 cellpadding=5><tr><th>MESSAGE SENT SUCCESSFULLY</th></tr></table></center>";
else
echo "<center><table border=1 cellspacing=5 cellpadding=5><tr><th>MESSAGE NOT SENT</th></tr></table></center>";
}
else
echo ("<center><table border=1 cellspacing=5 cellpadding=5><tr><th>FILL ALL THE FIELDS..!!</th></tr></table></center>");
?>
Hey I have configured my php.ini file as
[mail function]
sendmail_from = postmaster@localhost
SMTP = localhost
smtp_port = 25
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
It still doesnt work.
mail() doesn’t actually send mail. It merely submits the message you’ve generated to the host system’s mail subsystem to handle the sending. A result of true indicates that the mail sending subsystem accepted the message as valid. It doesn’t indicate that the message was sent.
You’ll need to look at your mail spool to see if the messages are in there awaiting delivery, and at your system’s mail log to see if it is generating errors when it tries to send your PHP-generated messages.
Even if the message has been successfully sent, it doesn’t mean it will be received. It may be caught by a spam filter, or rejected by a server, or just plain sent to the wrong address. It may have been delivered and ended up being marked as junk mail by the receiver’s e-mail client. Any number of things can prevent a message being sent, a true response from mail is no indication that it was sent successfully.