#!/usr/bin/python # setup django environment, so we can use their template engine from django.template import Context from django.template.loader import render_to_string # import mysql bindings import MySQLdb # render mail template and send it using local sendmail binary def sendmail(c, template): msg = render_to_string(template + "_mail.txt", c) # open sendmail process for writing p = os.popen("/usr/sbin/sendmail -t", 'w') p.write(msg) # close will return exit status # TODO: log error to some file if p.close(): return False return True def get_emails(): db = MySQLdb.connect(host="localhost", user="apache", passwd="password", db="trac") cursor = db.cursor() cursor.execute("SELECT login, email FROM user") users = cursor.fetchall() for user in users: c = Context() c['from_addr'] = "dev@spline.de" c['to_addr'] = user[1] c['name'] = user[0] cursor.execute("select project_name from project_members where login = '%s'" % (user[0], )) projects = cursor.fetchall() if len(projects) < 1: continue pstring = "" for project in projects: pstring += "* %s\n" % (project[0], ) c['projects'] = pstring sendmail(c, "delete_reminder") cursor.close() db.close() import os, sys sys.path = ['/var/www/localhost/htdocs'] + sys.path os.environ['DJANGO_SETTINGS_MODULE'] = 'account.settings' get_emails()