php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #30822 mail function returns nothing or false, but sends mail
Submitted: 2004-11-18 09:28 UTC Modified: 2005-01-27 01:00 UTC
Votes:6
Avg. Score:4.5 ± 0.8
Reproduced:5 of 5 (100.0%)
Same Version:2 (40.0%)
Same OS:1 (20.0%)
From: ligiana_s at virgilio dot it Assigned:
Status: No Feedback Package: Mail related
PHP Version: 4.3.4, 5.0.2 OS: Solaris 5.8
Private report: No CVE-ID: None
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
5 + 44 = ?
Subscribe to this entry?

 
 [2004-11-18 09:28 UTC] ligiana_s at virgilio dot it
Description:
------------
Regular
use of mail() function, 4 parameters...Mail function sends mail, but it returns false or 'nothing'. I didn't find any error in any logs (php, apache,sendmail). Server: Solaris 5.8, php 5.0.2 (or 4.3.4 - it doesn't make difference!), apache 2.0 (xampp).

sendmail_path /usr/lib/sendmail -t -i /usr/lib/sendmail -t -i
PATH /usr/local/bin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin I am not supposed to change the above PATH, but I've made even something like ln -sf /usr/lib/sendmail /usr/bin/sendmail

Reproduce code:
---------------
<?php
$r = false; 
$fdate = date("d-m-Y"); $subject = "New request - $HTTP_HOST "; 
$msg_body = "\nDate: 15 nov 2004 \n"; 
$headers = "From: my_mail@domain.com\n"; 
$headers .= "X-Priority: 1\n"; 
$r = @mail("other_address@domain.com", $subject, $msg_body, $headers);
if($r) 
 { 
  echo "Mail sent"; 
 } 
else 
{
?> <div align="center" class="main"><p><?php echo
isset($r)."/".empty($r)."/Error"; ?> !!!</b></div>M
<?php 
}
?>

Expected result:
----------------
 "Mail sent" when the mail was successfully accepted for delivery;
 "1/1/Error !!!"
if the mail wasn't sent.

Actual result:
--------------
Sometimes returns "Mail sent", and most of the times returns "1/1/Error
!!!", but in both cases the mail has been sent. I couldn't determine when is made the diference. I don't find anything in logs.

I wanted to report this on 4.3.4 version, but I saw that I was not allowed and I upgraded to 5.0.2, as recommended. 5.0.2 made a mess through my software, one of the problems being  the well-konwn "PHP Fatal error:  Cannot re-assign $this in..". I'll get back to 4.3.4, but please let me know what should I do in order to use the mail() function properly..

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-01-19 21:24 UTC] sniper@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip

PHP 5 is not the only release. We still consider PHP 4.3.x to be stable and valid release too. Try the snapshot, I can not reproduce this. (I'd also check the sendmail log(s) if it has some warning, etc. when the erronous false is returned but mail still send.)

 [2005-01-27 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Dec 04 12:01:30 2024 UTC