PHP mail() does not work on digitalocean ubuntu 16.04 server

Posted July 11, 2018 18.3k views
ApachePHPUbuntu 16.04

my tools: server= digitalocean domain= godaddy installed apache/2.4.18 php 7.0.30 ubuntu 16.04

i have tried install sendmail and configure it as below:

sudo apt-get install sendmail

and configure the /etc/hosts

sudo nano /etc/hosts

i am sure it contains localhost localhost.localdomain myhostname and i made


yes for all questions in sendmail config. also restarted apache2 with

sudo service apache2 restart

it is not sending mail. can u help me?

i tried send mail with send.php it contains:

$to = '';
$title = 'title of mail';
$content = 'hello from world';
$titles = 'From:' . "\r\n" .
    'Reply-To:' . "\r\n" .
    'X-Mailer: PHP/' .phpversion();
mail($to, $title, $content, $titles);

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

Hello friend!

This email should fail to be delivered at because your server will not be an authorized sender for Microsoft will drop this and consider it a spoofed/spam sender. You can read more about SPF, the underlying function for this, here:

You will want the From email to always be from a domain that you can speak for, so that you can delegate the authority properly.

Kind Regards,

  • i tried as gmail also .edu mail but it does not work.
    i didnot have any mail in inbox or spam or junk

    • Interesting. Make sure to set the From domain as something you control, and try sending to Gmail. In general, at least for a few initial test emails, Gmail is going to be a little more forgiving and might just put it in the Spam folder. Gmail, at least, does not silently accept email and not deliver it which can be helpful for testing.

      Another key thing here may be debugging/output. If you enable PHP error logging, do you get any output from running the script?