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

July 11, 2018 224 views
Apache PHP Ubuntu 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 127.0.0.1 localhost localhost.localdomain myhostname and i made

sendmailconfig

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:

<?php
$to = 'sendto@outlook.com';
$title = 'title of mail';
$content = 'hello from world';
$titles = 'From: sendfrom@outlook.com' . "\r\n" .
    'Reply-To: sendfrom@outlook.com' . "\r\n" .
    'X-Mailer: PHP/' .phpversion();
mail($to, $title, $content, $titles);
?>
1 Answer

Hello friend!

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

http://www.openspf.org/FAQ/How_does_it_work

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,
Jarland

  • 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?

Have another answer? Share your knowledge.