Transform::Alert::Input::IMAP - Transform alerts from IMAP messages


    # In your configuration
    <Input test>
       Type      IMAP
       Interval  60  # seconds (default)
          ParsedFolder  Finished
          # See Mail::IMAPClient Parameters
          User     bob
          Password mail4fun
          Folder   Inbox
          Uid      1
          # ...etc...
       # <Template> tags...


This input type will read a IMAP mailbox and process each message through the input template engine. If it finds a match, the results of the match are sent to one or more outputs, depending on the group configuration.

See Mail::IMAPClient for a list of the ConnOpts section parameters.

The ParsedFolder option is special. If set, it will move all parsed messages to that folder. If not, it will rely on the Unread flag to figure out which messages have been parsed or not parsed.

The Folder option (from Mail::IMAPClient) can be specified to use a different folder than the default Inbox.



Full text of the raw message, including headers. All CRs are stripped.

Preparsed Hash

       # Header pairs, as per Email::Simple::Header
       # decoded via Email::MIME->new($msg)
       # $pmsg->body_str, or body_str of the first text/plain part (if it croaks), or $pmsg->body_raw
       # (all \r are stripped)
       BODY => $str,


Special care should be made when using input templates on raw email messages. For one, header order may change, which is difficult to manage with REs. For another, the message is probably MIME-encoded and would contain 80-character splits. Use of Mungers here is highly recommended.

You are responsible for setting up any archiving/deletion protocols for the mailbox, as this module will save everything (and potentially fill up the box).

The raw message isn't kept for the Munger. If you really need it, you can implement an input RE template of (?<RAWMSG>[\s\S]+), and parse out the email message yourself.

This class is persistent, keeping the Mail::IMAPClient object until shutdown. However, it will still disconnect on close, and will clear the object on error.


The project homepage is

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit to find a CPAN site near you, or see


Brendan Byrd <>


This software is Copyright (c) 2013 by Brendan Byrd.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)