Path: csiph.com!usenet.pasdenom.info!gegeweb.org!eternal-september.org!feeder.eternal-september.org!mx05.eternal-september.org!.POSTED!not-for-mail From: "Peter H. Coffin" Newsgroups: comp.lang.php Subject: Re: Parsing mbox files with Windows Php Date: Mon, 27 May 2013 10:22:42 -0500 Organization: A noiseless patient Spider Lines: 90 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Injection-Info: mx05.eternal-september.org; posting-host="4163d0103afdb3d32fe6c98974b1e330"; logging-data="21823"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18cuY0AVDnnKA+1eko6awXV" User-Agent: slrn/0.9.9p1 (OpenBSD) Cancel-Lock: sha1:Bgf2YgQ/qJ8ZmGamTTn08oJPqm8= Xref: csiph.com comp.lang.php:9665 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. And when you're using an actual IMAP server, they're nowhere close to alike. But %UserProfile% might be a lot closer. So where's the base of what cclient, on Windows, on your configuration, actually pointing? You may have to haul out a test script that does opendir()/readdir() on '/' and see what turns up, then find what directory those things that read out are in. Then put the mail files under there, and make sure they're world-readable. [...] > I hoped someone else had cracked this nut, but I'm beginning to believe > that it is not crackable, so .... I will probably upload the entire > Thunderbird Mail folder structure to the remote host and try running my > script during low traffic hours. Once I verify it has worked 100% > (archived everything and saved the folder structure properly), I will > not have a need to do it again. 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." -- 80. If my weakest troops fail to eliminate a hero, I will send out my best troops instead of wasting time with progressively stronger ones as he gets closer and closer to my fortress. --Peter Anspach's list of things to do as an Evil Overlord