php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #15536 Warning message generated on displaying a mail without a TO address
Submitted: 2002-02-13 05:55 UTC Modified: 2002-02-20 19:39 UTC
From: vikas at indiamart dot com Assigned:
Status: Not a bug Package: IMAP related
PHP Version: 4.1.0 OS: Sun Solaris
Private report: No CVE-ID: None
 [2002-02-13 05:55 UTC] vikas at indiamart dot com
Hi,

I am using web-based interface to display mails using IMAP
The module calls the function "imap_header" for each mail and then displays output in required format.

But for few mails, which were sent without a TO address, and has only BCC address (can be done using Eudora), the interface shows the following warning

##################
Warning: Unterminated mailbox: Undisclosed-Recipient@ho.trivenigroup.com (errflg=3) in Unknown on line 0

Warning: Unexpected characters at end of address: :;@vd1.vsnl.net.in;> (errflg=3) in Unknown on line 0
#####################


The mail that caused this, has the following headers
##################
Reply-To: "Pramoda Kumar Rai" <pramod@texporttechnologies.com>
From: "Pramoda Kumar Rai" <pramod@texporttechnologies.com>
To: <Undisclosed-Recipient:;@vd1.vsnl.net.in;>
Subject: Fw: McAfee Newsletter
Date: Sat, 2 Feb 2002 22:17:37 +0530
Organization: Texport Technoligies Pvt. Ltd.
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400                       
#################

I found the similar error at many places but no solutions.
Is there any solution to atleast prevent the warning from being displayed..


Thanks
Vikas Aggarwal


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-02-13 07:17 UTC] mfischer@php.net
Prefix the function in question with a '@', e.g. @imap_header() .
 [2002-02-13 13:10 UTC] vikas at indiamart dot com
Hi,

I am already using the function as

##############
for ($i = $begin, $j = $beginIndex; $i <= $end; $i++, $j++) {
$msgnum = $sorted[$i-1];
$h = @imap_header($imp->stream, imap_msgno($imp->stream, $msgnum));
... and further
}
##############

But for a mail message that is sent without any TO and only BCC, the function returns a warning (as already shown in the message placed initially) because such mails have TO field as
To: <Undisclosed-Recipient:;@vd1.vsnl.net.in;>

And the function is not able to handle it.
Please suggest what to do to overcome this.

To get this error, jsut send a mail to some account with email-address in BCC field only and then see mails using some IMAP web interface.

Thanks
Vikas Aggarwal


 [2002-02-13 17:34 UTC] mfischer@php.net
Achso, ic. Well, this comes from the imap library itself, there's nothing you can do about; complain to the imap developers. You can, however, patch around it yourself if you're feeling brave (and know what you're doing).
 [2002-02-13 18:36 UTC] vikas at indiamart dot com
Then can you please tell me how to do the required settings to compress any warning from getting displayed.

For your reference, in the horde-imp script, i had already tried by making changes as below. But can i do that somehow by some server settings..!!

1. In the file /lib/imp.lib
var $error_level = E_ALL
changed to
var $error_level = 0;    

2. In the /config/defaults.php3.dist
$default->error_level = E_ALL;
changed to
$default->error_level = 0;
 [2002-02-18 03:29 UTC] vikas at indiamart dot com
Should i expect any feedback from you now ..
I had crosschecked everything with IMAP guys and here is what they said in reply to my questions..

##################
> There is a bug (seems to be) in one of the function's library.
> The function is "imap_header".
There is no such function in the c-client library.  That must be a PHP function.
I don't know if PHP is calling any c-client imap_???() functions directly, but if it is, then it is very broken.  All c-client imap_???() functions are internal to c-client and must not be calle dexternally.


> Otherwise, is there any work around to atleast stop warning to appear!!
It all depends upon what is displaying those warnings.
c-client displays nothing.  The display is being done by something outside of c-client, and c-client gave it the information to know what type of event it was.
If your application is displaying mm_log() events with no way to suppress them even if errflg=3, then this is a bug in your application and it's your bug to fix.
If PHP is displaying mm_log() events with no way to suppress them even if errflg=3, then this is a bug in PHP and it's the PHP maintainers' bug to fix.
##################



 [2002-02-20 19:39 UTC] rasmus@php.net
Well, look at the code yourself.  This error message comes from the imap libraries and not from PHP.  It is displayed by PHP through the mm_log() callback which is wrapped like this:
void mm_log(char *str, long errflg)
{
    ERRORLIST *cur = NIL;
    TSRMLS_FETCH();

    if (!(EG(error_reporting) & E_NOTICE)) {
        return;

ie. it will only display if E_NOTICE is turned on.  So PHP is correct in that it only optionally displays these.  You must not have turned E_NOTICE off correctly.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 21:01:28 2024 UTC