jh_
jh_

Reputation: 421

Not receiving email from the PHP mail() method

I have tried to set-up an email.html and an action.php so that someone can send an email from a website. Here is the code in email.html

<form action="./action.php" method="post">
    <p>Your Name</p>
    <p><input type="text" name="name" /></p>
    <p>Email</p>
    <p><input type="text" name="email" /></p>
    <p>Services</p>
    <p><input type="text" name="service" /></p>
    <p>Requests</p>
    <p><textarea rows="8" cols="32" name="comment"></textarea></p>
    <p><input type="submit" value="Send" /></p>
</form>

In action.php I have

<?php
    $to = "[email protected]";
    $subject = "Test mail";
    $message = "Hello! This is a simple email message.";
    $from = "[email protected]";
    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
    echo "Mail Sent.";
?>

The information entered in email.html successfully load into action.php, but nothing is received in my Outlook inbox from the email method. Am I missing something?

Upvotes: 6

Views: 35448

Answers (3)

coding Bott
coding Bott

Reputation: 4367

First check result of the mail. You also should check the php error log file.

when your mail is really going out, use an valid sender email, then you can get bounces from the receiving mail server.

don't forget, there are many anti spam technology's. most important is that you respect and know how SPF is working. that's one of the most fails, websites doesn't send emails which don't arrive at recipient.

Upvotes: 3

Mitech
Mitech

Reputation: 410

Well, banged my head hard.. Just to realise they were going in Spam folder of my "$to" email id. Also check this on your side.

Upvotes: 0

quietmint
quietmint

Reputation: 14153

Start by checking the return value of mail to see if the message is being accepted by your SMTP server.

Also, per Namecheap's documentation, your From address is invalid.

Only domains that are hosted on our servers can be used in 'From' field. Any domain that is not hosted with us cannot be added to 'From' field. We had to take this measure to prevent sending spam using forums, guest books and contact forms scripts. For your site scripts to work properly you should set 'From' field to email account that has been created in your cPanel.

Even if this were allowed by your hosting company, you shouldn't be sending mail from @gmail.com using non-Gmail servers anyway. It will often be blocked by SPF and other such anti-spam measures on the receiving end.

Upvotes: 7

Related Questions