NAME
Transform::Alert::Input::IMAP - Transform alerts from IMAP messages
SYNOPSIS
# In your configuration
<Input test>
Type IMAP
Interval 60 # seconds (default)
<ConnOpts>
ParsedFolder Finished
# See Mail::IMAPClient Parameters
Server mail.foobar.org
User bob
Password mail4fun
Folder Inbox
Uid 1
# ...etc...
</ConnOpts>
# <Template> tags...
</Input>
DESCRIPTION
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.
OUTPUTS
Text
Full text of the raw message, including headers. All CRs are stripped.
Preparsed Hash
{
# Header pairs, as per Email::Simple::Header
Email::Simple->new($msg)->header_obj->header_pairs,
# 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,
}
CAVEATS
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.
AVAILABILITY
The project homepage is https://github.com/SineSwiper/Transform-Alert/wiki.
The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see https://metacpan.org/module/Transform::Alert/.
AUTHOR
Brendan Byrd <BBYRD@CPAN.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2013 by Brendan Byrd.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)