FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Parsing mbox files with Windows Php
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Parsing mbox files with Windows Php [message #181742 is a reply to message #181741] Wed, 29 May 2013 02:27 Go to previous messageGo to previous message
Jerry Stuckle is currently offline  Jerry Stuckle
Messages: 2598
Registered: September 2010
Karma:
Senior Member
On 5/28/2013 7:56 PM, Chuck Anderson wrote:
> Jerry Stuckle wrote:
>> On 5/27/2013 11:15 PM, Chuck Anderson wrote:
>>> Peter H. Coffin wrote:
>>>> On Sat, 25 May 2013 16:39:14 -0600, Chuck Anderson wrote:
>>>> > Peter H. Coffin wrote:
>>>> >> On Fri, 24 May 2013 15:57:14 -0600, Chuck Anderson wrote:
>>>> >>> $mbox = imap_open('pathto/mboxfile', '', '') // works on *nix, but
>>>> >>> not on Windows.
>>>> >>> - Notice: Unknown: Can't open mailbox mboxfiles/Inbox: no such
>>>> >>> mailbox (errflg=2) in Unknown on line 0.
>>>> >>> (This second error is the one coming from the underlying
>>>> >>> c-client function.)
>>>> >> Okay, step one: quit munging stuff around and give us the EXACT code,
>>>> >> the EXACT contents of variables involved, and the EXACT error
>>>> >> messages.
>>>> >> You're not revealing national secrets by posting paths to filenames,
>>>> >> and
>>>> >> what the problem is may be in what you're changing to be more
>>>> >> general.
>>>> > I used generic paths and filenames because I had tried several
>>>> > variations.
>>>> >
>>>> > I have learned that imap_open only works on a file - on a *nix web
>>>> > server - if the path to the mbox file is relative to $HOME. I have
>>>> > not found any official documentation, just forum posts saying so, and
>>>> > ... it is the only way I have been able to make it work.
>>>> >
>>>> > So, imap_open works for me (on the remote Linux host) if, and only
>>>> > if, I use:
>>>> > imap_open ('public_html/mboxfiles/Trash', '', '')
>>>> > // Trash is an mbox file I uploaded directly from my Thunderbird
>>>> > Profile
>>>> >
>>>> > On Windows
>>>> > c:/localhost is the document root
>>>> > c:/localhost/imap is where the Php scripts are located.
>>>> > c:/localhost/imap/mboxfiles is where the mbox file "Trash" is located
>>>> >
>>>> > I have tried:
>>>> > imap_open('localhost/imap/mboxfiles/Trash', '', ''); // equivalent of
>>>> > being relative to $HOME on *nix
>>>> > imap_open('/imap/mboxfiles/Trash', '', ''); // absolute path from
>>>> > document root
>>>> > imap_open('mboxfiles/Trash', '', ''); // relative path
>>>> > imap_open('c:/localhost/imap/mboxfiles/Trash', '', ''); // real path
>>>> > on disk
>>>> >
>>>> > On Windows I always get these two errors (the file path changes
>>>> > accordingly):
>>>> >
>>>> > - Warning: imap_open(): Couldn't open stream
>>>> > localhost/utilities/imap/eml/Trash in
>>>> > localhost\utilities\imap\imap_save_mbox_file.php on line 127
>>>> >
>>>> > - Notice: Unknown: Can't open mailbox
>>>> > localhost/utilities/imap/eml/Trash: no such mailbox (errflg=2) in
>>>> > Unknown on line 0
>>>> >
>>>> > I have read that the second error is coming from the c-client
>>>> > (errflg=2 comes from there).
>>>>
>>>> Since the error messages about whether the file can be found, maybe
>>>> it's
>>>> time to investigate WHERE exactly cclient is thinking it's pointing.
>>>> Because DocumentRoot isn't necessarily the same as $HOME.
>>>
>>> I was thinking it "could" be c:/ (the root of the drive that localhost
>>> is on), but I also don't see a real equivalence.
>>>
>>>> And when you're using an actual IMAP server, they're nowhere close to
>>>> alike.
>>>> But %UserProfile% might be a lot closer.
>>>
>>> That would be C:/Users/Username
>>>
>>> Hey! It found it there:
>>>
>>> When I moved the mbox file 'Trash' to 'C:/Users/Username' and used:
>>> imap_open('Trash', '', ''); // Trash is in %UserProfile%
>>>
>>> The low level error changed to:
>>>
>>> Notice: Unknown: Trash (file C:\Users\Owner\Trash) is not in valid
>>> mailbox format (errflg=2) in Unknown on line 0
>>>
>>> If I upload that very file to my linux host, imap_open works.
>>>
>>> I'll try tinkering with line endings .... and whatever else I can think
>>> of ..... later.
>>>
>>> BTW, I tried opendir('/localhost/utilities/imap/eml/Trash') and it was
>>> able to read from there just fine, but perhaps that's moot now.
>>>
>>>> So where's the base of what cclient, on Windows, on your
>>>> configuration, actually pointing?
>>>
>>> Apparently that c-client is basing all folder references to
>>> %UserProfile%.
>>>
>>>> > I hoped someone else had cracked this nut, but I'm beginning to
>>>> > believe that it is not crackable, so ....
>>>> It's crackable, but IMHO, the number of PHP instances that are running
>>>> on Windows hosts that are doing anything user-related locally pales in
>>>> comparison to the number that are using user-related stuff on unix
>>>> hosts, which pales in comparison to the number that are doing only
>>>> webby-webby stuff for non-local clients. So the number of people that
>>>> have more than an academic interest in cracking this (much less
>>>> documenting the result) is probably only a handful worldwide, and some
>>>> of those probably just said "Screw it. I'll upload the mailfiles."
>>>
>>> Not quite yet. I might get this.
>>>
>>> [And ... yes, ... I use Php (WAMP) almost exclusively now for my own
>>> browser based apps.]
>>>
>>
>> Chuck,
>>
>> I'm glad you found the problem.
>>
>> I've been looking through the imap code most of the morning, but it
>> doesn't look like the same code that comes with Windows (this was from
>> U of Washington). There is some code in there for opening a file, but
>> nothing dealing with Windows paths. There is code to open a file, but
>> there doesn't seem to be a difference between Windows and Linux code
>> in that area (other than the differences between OS handling). But
>> nothing to do with "C:\Users\Username" at all.
>>
>> I suspect you're right - line endings may be a problem.
>
> I have tried every variation of line endings in the mbox file with no
> luck. I also tried adding an extra line feed to the beginning - tried
> variations of the first line ("From ....") - no luck - same error
> (mailbox format is not valid).
>
> And now Christopher Becker seems to have found the problem in his latest
> post.
>

Yes, if you want to use cygwin, that will work fine.

Looking more at the php imap module, it looks like it links to Windows
libraries, so no source code is available (and what it's doing in the
code is anyone's guess). You might be able to compile the imap source
from U of Washington and link that into the php module. Of course, this
would be non-standard and you'd have to redo it with every release. But
it's another option if you don't want to use cygwin.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: why php echo does not show up in HTML?
Next Topic: Exhaustive memory allocation using arrays
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Thu Nov 28 04:42:49 GMT 2024

Total time taken to generate the page: 0.04803 seconds