Date: Sat, 30 May 2009 12:44:48 -0400 From: Vince Sabio <vince@vjs.org> To: freebsd-questions@freebsd.org Subject: Re: MIME attachments in mbox files Message-ID: <p05200f20c64710414eb5@[10.190.83.17]> In-Reply-To: <20090530075639.GA71434@marvin.optimis.net> References: <p05200f10c64657f591f5@[10.190.83.17]> <20090530075639.GA71434@marvin.optimis.net>
next in thread | previous in thread | raw e-mail | index | archive | help
** At 00:56 -0700 on 05/30/2009, George Davidovich wrote: >On Fri, May 29, 2009 at 11:40:52PM -0400, Vince Sabio wrote: >> I have a need (well, I have lots of needs, but I'll try to stay >> focused here) > >Given the nature of most messages in the last few days, I'd suggest >you're trying too hard. ;-) Yeah, I was considering leading with an apology for the on-topic post. <g> > > to be able to take a Windows zip file that is stored as a MIME >> attachment to an e-mail message in an Mbox-format spool file, and >> unzip the attachment. I actually need to script the process. In case >> it helps, I can dedicate a mailbox to the task. >> >> Anyone know of any FreeBSD utility(ies) that do(es) this? > >Generally, when you're talking about processing an mbox and doing >something with message bodies, you're looking at formail plus procmail >in combination with a tool that can interpret the mime structure and >process the components (mimedefang, demine, stripmime, mimedecode, >reformime, renattach, etc.). That's a roundabout way of saying, no, >there are no FreeBSD utilities to do what you want, but there's lots to >be found in ports. Sorry, I misspoke: sed 's/utilities/ports/g' >I'd start with a quick read through of some of those manpages, but at >first glance, ripmime alone might do the trick: > ><http://www.freebsd.org/cgi/man.cgi?query=ripmime&apropos=0&sektion=0&manpath=FreeBSD+7.2-RELEASE+and+Ports&format=ascii> This, and Ian's munpack suggestion, will both do what I need -- but with one [very minor] exception: There is no way to override the file name specified in the MIME header (if present, which, in my case, it typically will be) and force it to use a specific output file name. Or just send the output to stdout, so I can redirect it to a file name of my choice (or to unzip). Not a show stopper by any means, just requires a workaround. I suspect that the authors of these utilities (there I go again) expected they would be invoked interactively. > > If necessary, I can write my own parser to strip out the attachment, >> in which case I'd need only a widget that can take in a MIME (base64) >> encoded zip file, convert it to binary, and unzip it. > >In that case, and assuming you're using Perl, MIME::base64 and >IO::Uncompress::Unzip (or /usr/ports/archivers/unzip) is what you want. >Bonus points for writing a one-liner. Using C, but shelling out where necessary to get stuff done. It looks like {ripmime, munpack} and unzip will do the trick. Many thanks for the pointers. I now return you to your regularly scheduled META discussion(s)... :-) __________________________________________________________________________ Vince Sabio vince@vjs.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p05200f20c64710414eb5>