]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 460590: Add a hook in Bugzilla::Mailer right before mail is sent
authormkanat%bugzilla.org <>
Mon, 20 Oct 2008 05:04:40 +0000 (05:04 +0000)
committermkanat%bugzilla.org <>
Mon, 20 Oct 2008 05:04:40 +0000 (05:04 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit

Bugzilla/Hook.pm
Bugzilla/Mailer.pm
extensions/example/code/mailer-before_send.pl [new file with mode: 0644]

index e7697b42de83beec2fe008981ab62e3beba84d82..a4436392b897089379aefd48fb2228cd48cd857b 100644 (file)
@@ -450,6 +450,18 @@ database when run.
 
 =back
 
+=head2 mailer-before_send
+
+Called right before L<Bugzilla::Mailer> sends a message to the MTA.
+
+Params:
+
+=over
+
+=item C<email> - The C<Email::MIME> object that's about to be sent.
+
+=back
+
 =head2 webservice
 
 This hook allows you to add your own modules to the WebService. (See
index bb0917bc1631ac001a857f50db54b9a099e2a03d..1ffbd44e3dcd5917f69c6fcb2782db48e2ac7543 100644 (file)
@@ -39,6 +39,7 @@ use base qw(Exporter);
 
 use Bugzilla::Constants;
 use Bugzilla::Error;
+use Bugzilla::Hook;
 use Bugzilla::Util;
 
 use Date::Format qw(time2str);
@@ -155,6 +156,8 @@ sub MessageToMTA {
                     Debug => Bugzilla->params->{'smtp_debug'};
     }
 
+    Bugzilla::Hook::process('mailer-before_send', { email => $email });
+
     if ($method eq "Test") {
         my $filename = bz_locations()->{'datadir'} . '/mailer.testfile';
         open TESTFILE, '>>', $filename;
diff --git a/extensions/example/code/mailer-before_send.pl b/extensions/example/code/mailer-before_send.pl
new file mode 100644 (file)
index 0000000..322c780
--- /dev/null
@@ -0,0 +1,28 @@
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Example Plugin.
+#
+# The Initial Developer of the Original Code is Everything Solved, Inc.
+# Portions created by the Initial Developer are Copyright (C) 2008 
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+
+use strict;
+use warnings;
+use Bugzilla;
+my $email = Bugzilla->hook_args->{email};
+# If you add a header to an email, it's best to start it with
+# 'X-Bugzilla-<Extension>' so that you don't conflict with
+# other extensions.
+$email->header_set('X-Bugzilla-Example-Header', 'Example');