RT::Extension::CommandByMail - Change ticket metadata via email
Works with RT 4.0, 4.2, 4.4
(Send email with content that looks like the following.) Status: stalled Subject: change subject AddAdminCc: boss@example.com AddCc: dev1@example.com AddCc: dev2@example.com The comment/reply text goes here
perl Makefile.PL
make
make install
May need root permissions
If you are using RT 4.2 or greater, add this line:
Plugin('RT::Extension::CommandByMail');
For RT 4.0, add this line:
Set(@Plugins, qw(RT::Extension::CommandByMail));
or add RT::Extension::CommandByMail to your existing @Plugins line.
RT::Extension::CommandByMail
@Plugins
For RT 4.2 or older, also add Filter::TakeAction to your @MailPlugins configuration, as follows:
Filter::TakeAction
@MailPlugins
Set(@MailPlugins, qw(Auth::MailFrom Filter::TakeAction));
For RT 4.4 or newer, the plugin code is in Action::CommandByMail, so add this:
Action::CommandByMail
Set(@MailPlugins, qw(Auth::MailFrom Action::CommandByMail));
Be sure to include Auth::MailFrom in the list as well.
Auth::MailFrom
Note: The plugin name has changed for RT 4.4, so after upgrading you must also update your RT_SiteConfig.pm file to change Filter::TakeAction to the new Action::CommandByMail.
RT_SiteConfig.pm
For RT 4.4.0, apply the included patch:
cd /opt/rt4 # Your location may be different patch -p1 < /download/dir/RT-Extension-CommandByMail/etc/handle_action_pass_currentuser.patch
In addition to adding the configuration above to activate the extension in RT, the following options are available.
$CommandByMailGroup
You may set a $CommandByMailGroup to a particular group ID in RT_SiteConfig. If set, only members of this group may perform commands by mail.
$CommandByMailHeader
You may set this configuration value to the name of a header to examine as well. For example:
Set($CommandByMailHeader, "X-RT-Command");
$CommandByMailOnlyHeaders
If set, the body will not be examined, only the header defined by the previous configuration option.
This extension is incompatible with UnsafeEmailCommands RT option.
UnsafeEmailCommands
This extension allows you to manage ticket metadata via email. You may put commands into the beginning of an email, and the extension will apply them. The list of commands is detailed below.
CAVEAT: commands are line oriented, so you can't expand to multiple lines for each command, i.e. values can't contains new lines. The module also currently expects and parses text, not HTML.
This extension parses the body, and optionally a header, in incoming messages for commands to update ticket metadata. The format of commands is:
Command: value Command: value ...
You can find list of "COMMANDS" below.
Some commands (like Status, Queue and other) can be used only once. Commands that manage lists can be used multiple times, for example link, custom fields and watchers commands. Also, the latter can be used with Add and Del prefixes to add/delete values from the current list of the ticket you reply to or comment on.
Add
Del
Set new queue for the ticket
Set new subject to the given string
Set new status, one of new, open, stalled, resolved, rejected or deleted
Set new owner using the given username
Set new priority to the given value
Set new final priority to the given value
Set new date/timestamp, or 0 to unset:
Due: <new timestamp> Starts: <new timestamp> Started: <new timestamp>
Set new times to the given value in minutes. Note that on correspond/comment TimeWorked add time to the current value.
TimeWorked
TimeWorked: <minutes> TimeEstimated: <minutes> TimeLeft: <minutes>
Manage watchers: requestors, ccs and admin ccs. This commands can be used several times and/or with Add and Del prefixes, for example Requestor comand set requestor(s) and the current requestors would be deleted, but AddRequestor command adds to the current list.
Requestor
AddRequestor
Requestor: <address> Set requestor(s) using the email address AddRequestor: <address> Add new requestor using the email address DelRequestor: <address> Remove email address as requestor Cc: <address> Set Cc watcher(s) using the email address AddCc: <address> Add new Cc watcher using the email address DelCc: <address> Remove email address as Cc watcher AdminCc: <address> Set AdminCc watcher(s) using the email address AddAdminCc: <address> Add new AdminCc watcher using the email address DelAdminCc: <address> Remove email address as AdminCc watcher
Manage links. These commands are also could be used several times in one message.
DependsOn: <ticket id> DependedOnBy: <ticket id> RefersTo: <ticket id> ReferredToBy: <ticket id> Members: <ticket id> MemberOf: <ticket id>
Manage custom field values. Could be used multiple times. (The curly braces are literal.)
CustomField.{<CFName>}: <custom field value> AddCustomField.{<CFName>}: <custom field value> DelCustomField.{<CFName>}: <custom field value>
Short forms:
CF.{<CFName>}: <custom field value> AddCF.{<CFName>}: <custom field value> DelCF.{<CFName>}: <custom field value>
Manage custom field values of transactions. Could be used multiple times. (The curly braces are literal.)
TransactionCustomField.{<CFName>}: <custom field value>
TxnCustomField.{<CFName>}: <custom field value> TransactionCF.{<CFName>}: <custom field value> TxnCF.{<CFName>}: <custom field value>
This extension has no extended auth system; so all security issues that apply to the RT in general also apply to the extension.
This method provides the main email processing functionality. It supports both RT 4.2 and earlier and 4.4 and later. To do this, the return hashes contain some values used by 4.2 code and some used by 4.4. The return values coexist and unused values are ignored by the different versions.
Takes a hash containing QueueObj, Head and CurrentUser objects. Returns a list of all email addresses in the To and Cc headers b<except> the current Queue's email addresses, the CurrentUser's email address and anything that the configuration sub RT::IsRTAddress matches.
Best Practical Solutions, LLC <modules@bestpractical.com>
All bugs should be reported via email to
L<bug-RT-Extension-CommandByMail@rt.cpan.org|mailto:bug-RT-Extension-CommandByMail@rt.cpan.org>
or via the web at
L<rt.cpan.org|http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-CommandByMail>.
This software is Copyright (c) 2014 by Best Practical Solutions
This is free software, licensed under:
The GNU General Public License, Version 2, June 1991
To install RT::Extension::CommandByMail, copy and paste the appropriate command in to your terminal.
cpanm
cpanm RT::Extension::CommandByMail
CPAN shell
perl -MCPAN -e shell install RT::Extension::CommandByMail
For more information on module installation, please visit the detailed CPAN module installation guide.