skip to Main Content

The PHP mail() function is not working from my cpanel.

My cpanel ports are all open and by default the email ID is also set in cpanel.

MY code

$to = "[email protected]";
$subject = "My subject"; 
$txt = "Hello world!";
$headers = "From: [email protected]" ;
mail($to,$subject,$txt,$headers);

3

Answers


  1. Your code seems correct, but most hosts block the mail function by default and/or prevent the user nobody from sending emails.

    In Tweak Settings on WHM, try turning off the option "Prevent ‘nobody’ from sending mail".

    In the PHP Configuration Editor (in advanced mode) check if the mail function is listed in the disable_functions directive.

    If none of that work, check if the Exim is up and running and if the sendmail_path in php.ini is correct.

    Login or Signup to reply.
  2. In my case there was an apache misconfiguration. I saw in logs only this unable to set gid=993 or uid=0 (euid=0): forcing real = effective
    And the fix was to add LimitUIDRange 0 2000 to apache mpm_prefork.conf file and restart apache

    Login or Signup to reply.
  3. ini_set( 'display_errors', 1 );
    error_reporting( E_ALL );
    
    $from = "[email protected]";
    $to = "[email protected]";
    
    $subject = "PHP Mail Sending Checking";
    $message = "PHP Mail Works Fine";
    $headers = "From: " . $from;
    
    mail($to,$subject,$message,$headers);
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search