[Mailman-Users] Release of e-mails

Ralf Hildebrandt Ralf.Hildebrandt at charite.de
Fri Jun 4 15:50:26 CEST 2010


* Jasper - HRSA <jasper at huskyrescue.co.za>:
> Is there a setting in mailman where one can release 300 e-mails every hour.
> My host only allow me to send 300 e-mails every hour.

I have a script for that :)
I put all mails from amlman on hold (via header_checks in Postfix) and
then I'm releasing 1 mail every x seconds using

(attached)

-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebrandt at charite.de | http://www.charite.de
	    
-------------- next part --------------
#!/bin/sh

###################################
#                                 #
# mailfreilass                    #
#                                 #
# (c)2003 Udo Wolter (UWP)        #
#                                 #
# Schreibt Mails Loadvertraeglich #
# raus, die Status On-Hold haben  #
# zur Unterstuetzung der Rundmail #
#                                 #
# 2003-08-06: mit 3.0-Load        #
# 2007-05-02: individuelles Freilassen von Queuefiles
#                                 #
###################################

set -x

#
# Sollte immer laufen !
# Zur Not mit Supervise !
#
while true
do

#
# Load-Status des 1-Minuten-Werts pruefen,
# wenn unter 10.0, dann 1 als OK-Wert zurueck-
# liefern, ansonsten 0 als Nein-Wert
#
  load1min=`uptime | gawk -F, '{
    split($(NF-2),bla," ")
	if (bla[3] >= 10.0){
	  print 0
    } else {
	  print 1
	}
  }'`
#
# Nur, wenn Load < 10.0, wird die erste Zeile, in der
# ein ! vorkommt, auseinandergenommen und die
# Mail-ID rausgezogen
#
  if [ $load1min -eq 1 ]
  then
#    ID=`mailq | gawk -F\! 'BEGIN{lauf=1}{
#      if ((index ($0, "!")) && lauf){
#	    print $1
#		lauf = 0
#	  }
#    }'`
    ID=`mailq | gawk 'BEGIN {RS=""}
	              {if (sub(/!$/, "", $1)||sub(/^!/, "", $2)) {    print $1; exit }}'`
		    
#
# Nur, wenn die ID nicht leer ist (leer bedeutet,
# dass keine ID mit ! dabei war), wird die Mail-ID
# wieder eingetuetet und abgearbeitet
#
    if [ ! -z "$ID" ]
    then
       /usr/sbin/postsuper -H $ID && postqueue -i $ID
    fi
  fi

#
# Alle 10 Sekunden aufrufen
#
  sleep 10
done


More information about the Mailman-Users mailing list