Michael
Michael

Reputation: 3239

mail() function will not recognize message variables in php cronjob

I have a text file called "basic.txt" with the following text

This
is a
test file.

My cronjob runs my php program every minute and sends me an email. I receive the email no problem, but it will not include the body message. Here is my php code:

<?php
    $string = "";
    $file = fopen("basic.txt", "r");
    $string .= file_get_contents("basic.txt");
    $fclose($file);
    echo $string; // this is to test that in fact $string contains the text and it does
    mail("[email protected]", "TEST", $string, "From: [email protected]");
?>

Why isn't $string sending the text from the text file to the body of the email even though I can use "echo $string" and it works fine?

Thanks

Upvotes: 1

Views: 69

Answers (1)

Funk Forty Niner
Funk Forty Niner

Reputation: 74232

Get rid of these 2 lines:

 $file = fopen("basic.txt", "r");
 $fclose($file);

Since you're already using file_get_contents() which fetches the file's content.

Running your code from my server produced:

Fatal error: Function name must be a string in /path/to/file.php on line 5

Your code is failing on you silently.


Therefore and in the OP's case and as per suggestions in comments, a full system path was required for the text file, and had to setup a new cron job.

Upvotes: 1

Related Questions