Package: mailping
Severity: wishlist
Tags: patch

This patch adds support for specifying witch mailserver to hand the
ping-mail to.

This started out because I run qmail, via tcpserver, and don't want it
to listen to all ip's on the machine, thus one ip-per-tcpserver, so it
doesn't listen to localhost.

The other case I use it is to test the primary/secondary mailserver 
explicit.


-- 
Anton Lundin    +46702-161604
diff -ur mailping-0.0.4.orig/MailPing/config.py 
mailping-0.0.4/MailPing/config.py
--- mailping-0.0.4.orig/MailPing/config.py      2004-04-16 19:36:08.000000000 
+0200
+++ mailping-0.0.4/MailPing/config.py   2008-10-28 14:51:04.000000000 +0100
@@ -16,7 +16,7 @@
             t = default
     return t
 
-def getEmail(configdir, name, default=_NoDefault):
+def getString(configdir, name, default=_NoDefault):
     path = os.path.join(configdir, name)
     try:
         f=file(path)
diff -ur mailping-0.0.4.orig/MailPing/probe.py mailping-0.0.4/MailPing/probe.py
--- mailping-0.0.4.orig/MailPing/probe.py       2004-12-03 10:13:37.000000000 
+0100
+++ mailping-0.0.4/MailPing/probe.py    2008-10-28 14:54:02.000000000 +0100
@@ -65,14 +65,14 @@
 
     return msg
 
-def send(msg, sender, recipient):
+def send(msg, sender, recipient, server):
     s = smtplib.SMTP()
-    s.connect()
+    s.connect(server)
     s.sendmail(sender, [recipient], msg.as_string())
     s.quit()
 
 def process(statedir, interval, curtime,
-            fromAddress, toAddress, adminAddress):
+            fromAddress, toAddress, adminAddress, server):
     if shouldSend(statedir, interval, curtime):
         ident = randomIdent()
         msg = makeProbe(ident=ident,
@@ -81,7 +81,8 @@
                         adminAddress=adminAddress)
         send(msg,
              sender=fromAddress,
-             recipient=toAddress)
+             recipient=toAddress,
+            server=server)
 
         pending = os.path.join(statedir, 'pending')
         try:
diff -ur mailping-0.0.4.orig/MailPing/test/test_config.py 
mailping-0.0.4/MailPing/test/test_config.py
--- mailping-0.0.4.orig/MailPing/test/test_config.py    2004-04-14 
14:42:01.000000000 +0200
+++ mailping-0.0.4/MailPing/test/test_config.py 2008-10-28 14:51:32.000000000 
+0100
@@ -29,18 +29,18 @@
 
     def testEmailFail(self):
         self.assertRaises(config.NoSuchConfigItem,
-                          config.getEmail,
+                          config.getString,
                           self.configdir, 'not-exist')
 
     def testEmailDefault(self):
         class Unique:
             pass
         self.assertEquals(Unique,
-                          config.getEmail(self.configdir, 'not-exist',
+                          config.getString(self.configdir, 'not-exist',
                                          Unique))
 
     def testEmailOK(self):
         fileutil.writeFile(os.path.join(self.configdir, 'sometimes'),
                            '42\n')
-        self.assertEquals(config.getEmail(self.configdir, 'sometimes'),
+        self.assertEquals(config.getString(self.configdir, 'sometimes'),
                           '42')
diff -ur mailping-0.0.4.orig/bin/mailping-cron mailping-0.0.4/bin/mailping-cron
--- mailping-0.0.4.orig/bin/mailping-cron       2004-04-16 17:47:36.000000000 
+0200
+++ mailping-0.0.4/bin/mailping-cron    2008-10-28 14:56:10.000000000 +0100
@@ -35,8 +35,8 @@
 
         interval = config.getTime(configPath, 'interval', 10*60)
 
-        fromAddress = config.getEmail(configPath, 'from', None)
-        toAddress = config.getEmail(configPath, 'to', None)
+        fromAddress = config.getString(configPath, 'from', None)
+        toAddress = config.getString(configPath, 'to', None)
         if fromAddress is None or toAddress is None:
             user = pwd.getpwuid(os.getuid()).pw_name
             host = socket.getfqdn()
@@ -44,14 +44,16 @@
                 fromAddress = '[EMAIL PROTECTED]' % (user, host)
             if toAddress is None:
                 toAddress = '[EMAIL PROTECTED]' % (user, dirname, host)
-        adminAddress = config.getEmail(configPath, 'admin', None)
+        adminAddress = config.getString(configPath, 'admin', None)
+
+        server = config.getEmail(configPath, 'server', 'localhost')
 
         curtime = time.time()
 
         if os.path.isdir(os.path.join(statePath, 'incoming')):
             incoming.process(statePath)
         probe.process(statePath, interval, curtime,
-                      fromAddress, toAddress, adminAddress)
+                      fromAddress, toAddress, adminAddress, server)
 
 if __name__ == '__main__':
     if sys.argv[1:]:

Attachment: pgpzdsxs9m0Sp.pgp
Description: PGP signature

Reply via email to