From owner-freebsd-questions@FreeBSD.ORG Sat May 30 16:44:52 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4935110656A7 for ; Sat, 30 May 2009 16:44:52 +0000 (UTC) (envelope-from vince@vjs.org) Received: from mail.vjs.org (static-71-126-154-132.washdc.fios.verizon.net [71.126.154.132]) by mx1.freebsd.org (Postfix) with ESMTP id 1F3F88FC26 for ; Sat, 30 May 2009 16:44:52 +0000 (UTC) (envelope-from vince@vjs.org) Received: from [10.190.83.17] (71.126.154.142) by mail.vjs.org with ESMTP (Eudora Internet Mail Server 3.1.5) for ; Sat, 30 May 2009 12:44:50 -0400 Mime-Version: 1.0 Message-Id: In-Reply-To: <20090530075639.GA71434@marvin.optimis.net> References: <20090530075639.GA71434@marvin.optimis.net> X-Mailer: Eudora 10.0b19 for Cray SV-2 (beta release), unregistered Date: Sat, 30 May 2009 12:44:48 -0400 To: freebsd-questions@freebsd.org From: Vince Sabio Content-Type: text/plain; charset="us-ascii" ; format="flowed" Subject: Re: MIME attachments in mbox files X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 May 2009 16:44:52 -0000 ** 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. > > 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: > > 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