+#!/usr/bin/python3
+
import configparser
import imaplib
import email
config = configparser.ConfigParser()
config.read('dmarc.ini')
-with psycopg2.connect(host=config['database']['server'],
+conn = psycopg2.connect(host=config['database']['server'],
database=config['database']['database'],
user=config['database']['username'],
- password=config['database']['password']) as conn:
- with conn.cursor() as cur:
- cur.execute('select max(report_metadata_date_range_end) from reports')
- results = cur.fetchall()
+ password=config['database']['password'])
+
+cur = conn.cursor()
+cur.execute('select max(report_metadata_date_range_end) from reports')
+results = cur.fetchall()
most_recent_date = results[0][0]
mailbox = imaplib.IMAP4(host=config['imap']['server'],
mailbox.close()
mailbox.logout()
+for report in dmarc_reports:
+ cur.execute('select id, report_metadata_report_id from reports where report_metadata_report_id = %s;',
+ [report.find('./report_metadata/report_id').text])
+ results = cur.fetchall()
+ if not results:
+ print('write', report.find('./report_metadata/report_id').text)
+ write_report(conn, cur, report)
-with psycopg2.connect(host=config['database']['server'],
- database=config['database']['database'],
- user=config['database']['username'],
- password=config['database']['password']) as conn:
- with conn.cursor() as cur:
- for report in dmarc_reports:
- cur.execute('select id, report_metadata_report_id from reports where report_metadata_report_id = %s;',
- [report.find('./report_metadata/report_id').text])
- results = cur.fetchall()
- if not results:
- print('write', report.find('./report_metadata/report_id').text)
- write_report(conn, cur, report)
-
-
-
+conn.close()