views:

42

answers:

2

I have a small script which im using to test PHP mail(), as below:

<?php
error_reporting(E_ALL);
ini_set("display_errors",1);

mail('[email protected]','test','test') or die('could not send') ;

echo "Mail Sent";

?>

When I run this script I get no output at all. I don't get an error, I dont get anything echoed, I view the source, nothing.

Ive tried so many different variations, if I take out the mail function in the code above it will work fine.

This is a Windows hosted server so I have not access to php.ini or anything

Could it be some configuration that is causing no output when its encountering an error?

+1  A: 

The problem is with your sendmail server configuration. If youre testing this script on your personal development environment, don't worry about it. It can be a pita to setup/configure a sendmail server. If you're having this problem on your production server, the simpliest solution is to use a mailer library that has an smtp option (allowi g your email to be sent to an external smtp server for processing/delivery).

Here is a guide on using a 3rd party smtp mail script... http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

John Himmelman
+2  A: 

According to the PHP Runtime Configuration guide:

Note: Although display_errors may be set at runtime (with ini_set()), it won't have any affect if the script has fatal errors. This is because the desired runtime action does not get executed.

Your code appears to have a syntax error ('test, is missing a closing apostrophe). Thus, your program is encountering a fatal error. The only way to get a fatal error to display (EDIT: outside the error log) is to set display_errors = 1 in your php.ini file.

cmptrgeekken