Kyle M Hall
58bc11a7d4
Having the ability to limit the number of messages sent by process_message_queue.pl on a single run would be very useful for controlling home many messages are sent at a given time. This can help prevent too many messages being sent out at once and getting flagged as a spammer. Test Plan: 1) Apply this patch 2) Generate some number of messages in the message queue 3) Run process_message_queue.pl with the new --limit option, set limit to a number smaller than the number of pending messages 4) After the script has run, check the database and note that only a number of pending messages were sent, and that the remaining amount of pending messages is the original amount less the number specified as the limit Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
78 lines
2.2 KiB
Perl
Executable file
78 lines
2.2 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# Copyright 2008 LibLime
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
|
|
|
use strict;
|
|
use warnings;
|
|
BEGIN {
|
|
# find Koha's Perl modules
|
|
# test carefully before changing this
|
|
use FindBin;
|
|
eval { require "$FindBin::Bin/../kohalib.pl" };
|
|
}
|
|
use C4::Letters;
|
|
use C4::Log;
|
|
use Getopt::Long;
|
|
|
|
my $username = undef;
|
|
my $password = undef;
|
|
my $limit = undef;
|
|
my $method = 'LOGIN';
|
|
my $help = 0;
|
|
my $verbose = 0;
|
|
|
|
GetOptions(
|
|
'u|username:s' => \$username,
|
|
'p|password:s' => \$password,
|
|
'l|limit:s' => \$limit,
|
|
'm|method:s' => \$method,
|
|
'h|help|?' => \$help,
|
|
'v|verbose' => \$verbose,
|
|
);
|
|
my $usage = << 'ENDUSAGE';
|
|
|
|
This script processes the message queue in the message_queue database
|
|
table. It sends out the messages in that queue and marks them
|
|
appropriately to indicate success or failure. It is recommended that
|
|
you run this regularly from cron, especially if you are using the
|
|
advance_notices.pl script.
|
|
|
|
This script has the following parameters :
|
|
-u --username: username of mail account
|
|
-p --password: password of mail account
|
|
-l --limit: The maximum number of messages to process for this run
|
|
-m --method: authentication method required by SMTP server (See perldoc Sendmail.pm for supported authentication types.)
|
|
-h --help: this message
|
|
-v --verbose: provides verbose output to STDOUT
|
|
|
|
ENDUSAGE
|
|
|
|
die $usage if $help;
|
|
|
|
cronlogaction();
|
|
|
|
C4::Letters::SendQueuedMessages(
|
|
{
|
|
verbose => $verbose,
|
|
username => $username,
|
|
password => $password,
|
|
method => $method,
|
|
limit => $limit,
|
|
}
|
|
);
|
|
|