From 04c0b655281646b2e650ee015f2a808d30b9165c Mon Sep 17 00:00:00 2001 From: "myk%mozilla.org" Date: Tue, 21 Sep 2004 00:58:32 +0000 Subject: [PATCH] Fix for bug 245075: command-line script that sends bug mail so installations can push bug mail out if it's been missed by the code that sends mail when changes are made; written by Dave Miller --- .../bugzilla/contrib/sendunsentbugmail.pl | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 webtools/bugzilla/contrib/sendunsentbugmail.pl diff --git a/webtools/bugzilla/contrib/sendunsentbugmail.pl b/webtools/bugzilla/contrib/sendunsentbugmail.pl new file mode 100644 index 00000000000..ffe892e08ec --- /dev/null +++ b/webtools/bugzilla/contrib/sendunsentbugmail.pl @@ -0,0 +1,51 @@ +#!/usr/bin/perl -wT +# -*- 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 Bug Tracking System. +# +# The Initial Developer of the Original Code is Netscape Communications +# Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): Dave Miller +# Myk Melez + +use strict; + +use lib qw(.); + +require "CGI.pl"; +use Bugzilla::Constants; +use Bugzilla::BugMail; + +SendSQL("SELECT bug_id FROM bugs WHERE lastdiffed < delta_ts AND + delta_ts < date_sub(now(), INTERVAL 30 minute) ORDER BY bug_id"); +my @list; +while (MoreSQLData()) { + push (@list, FetchOneColumn()); +} + +if (scalar(@list) > 0) { + print "OK, now attempting to send unsent mail\n"; + print scalar(@list) . " bugs found with possibly unsent mail.\n\n"; + foreach my $bugid (@list) { + my $start_time = time; + print "Sending mail for bug $bugid...\n"; + my $outputref = Bugzilla::BugMail::Send($bugid); + my ($sent, $excluded) = (scalar(@{$outputref->{sent}}),scalar(@{$outputref->{excluded}})); + print "$sent mails sent, $excluded people excluded.\n"; + print "Took " . (time - $start_time) . " seconds.\n\n"; + } + print "Unsent mail has been sent.\n"; +}