Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Not receiving email from the PHP mail() method

Tags:

php

email

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?

like image 582
jh_ Avatar asked Sep 28 '13 19:09

jh_


2 Answers

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.

like image 52
quietmint Avatar answered Sep 23 '22 21:09

quietmint


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.

like image 39
coding Bott Avatar answered Sep 21 '22 21:09

coding Bott