I am in need of a script that will log on to an Exchange Server (possibly using IMAP as the code below demonstrates), loop through several mailboxes, and extract all attachments from any messages that have attachments.

Here are my questions
1. Is it possible to use IMAP to log on using a master accout that has access to all mailboxes so that it can actually change from one mailbox to another without logging on as each individual user? If so, how?

2. How would one go about finding and extracting attachments using IMAP? I don't see any options for this?

3. I was thinking about storing this in a directory structure such as follows:
{User Name}
 {Folder Name}
  {Message Subject}
   {Attachment File}
However, the potential exists for the same folder to contain messages with the same subject and attachment name. Suggestion on handling this?

Below is some simple code that opens a connection to my server and then loops through the folders. It is a start, but the questions above must be answered before I can continue.
use Net::IMAP::Simple; # open a connection to the IMAP server $server = new Net::IMAP::Simple("myserver.mydomain.com"); print "server=$server\n"; # login $server->login( "MasterUser", "Password" ); # run through each mailbox (or folder) my @boxes = $server->mailboxes; foreach my $box (@boxes) { print "box=$box\n"; }
Any code or other help getting started would be much appreciated.

In reply to Exchange Server and IMAP by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.