Esempio n. 1
0
    def test_get_mail_stats_method__message_should_have_uid(self):
        filename = self.create_tmp_log('\n'.join([
            "postfix/qmgr[3043]: 25E6CDF04F4: [email protected]",
            "sasl_username=%s" % self.should_not_exists_mail,
        ]))

        parser = PostfixParser(filename)
        self.assertNotIn(self.should_not_exists_mail,
                         parser.get_mail_stats().keys())
Esempio n. 2
0
    def test_get_mail_stats_method__was_sent_but_does_not_have_sasl_line_in_log(
            self):
        filename = self.create_tmp_log('\n'.join([
            "postfix/smtp[23225]: 25E6CDF04F4: to=<*****@*****.**>, status=sent",
            "Jul 10 10:09:09 srv24-s-st postfix/qmgr[3043]: 25E6CDF04F4: removed"
        ]))

        parser = PostfixParser(filename)
        self.assertEqual({}, parser.get_mail_stats())
Esempio n. 3
0
    def test_get_mail_stats_method__should_count_when_it_is_removed(self):
        filename = self.create_tmp_log('\n'.join([
            "postfix/qmgr[3043]: 25E6CDF04F4: [email protected]",
            "Jul 10 10:09:09 srv24-s-st postfix/qmgr[3043]: 25E6CDF04F4: removed",
            "postfix/qmgr[3043]: 33333333333: sasl_username=%s" %
            self.should_not_exists_mail,
        ]))

        parser = PostfixParser(filename)
        self.assertNotIn(self.should_not_exists_mail,
                         parser.get_mail_stats().keys())
Esempio n. 4
0
    def test_get_mail_stats_method__has_1_email_sender(self):
        filename = self.create_tmp_log('\n'.join([
            "postfix/qmgr[3043]: 25E6CDF04F4: sasl_username=%s" % self.mail1,
            "Jul 10 10:09:09 srv24-s-st postfix/qmgr[3043]: 25E6CDF04F4: removed"
        ]))

        parser = PostfixParser(filename)
        self.assertEqual(parser.get_mail_stats(),
                         {self.mail1: {
                             'success': 0,
                             'error': 0
                         }})
Esempio n. 5
0
    def test_get_mail_stats_method__email_was_sent(self):
        filename = self.create_tmp_log('\n'.join([
            "postfix/qmgr[3043]: 25E6CDF04F4: sasl_username=%s" % self.mail1,
            "postfix/smtp[23225]: 25E6CDF04F4: to=<*****@*****.**>, status=sent (250 OK)",
            "Jul 10 10:09:09 srv24-s-st postfix/qmgr[3043]: 25E6CDF04F4: removed",
        ]))

        parser = PostfixParser(filename)
        self.assertEqual(parser.get_mail_stats(),
                         {self.mail1: {
                             'success': 1,
                             'error': 0
                         }})
Esempio n. 6
0
    def test_get_mail_stats_method__email_has_2_sessions(self):
        filename = self.create_tmp_log('\n'.join([
            "postfix/qmgr[3043]: 11111111111: sasl_username=%s" % self.mail1,
            "postfix/smtp[23225]: 11111111111: to=<*****@*****.**>, status=sent",
            "Jul 10 10:09:09 srv24-s-st postfix/qmgr[3043]: 11111111111: removed",
            "postfix/qmgr[3043]: 22222222222: sasl_username=%s" % self.mail1,
            "postfix/smtp[23225]: 22222222222: to=<*****@*****.**>, status=sent",
            "Jul 10 10:09:09 srv24-s-st postfix/qmgr[3043]: 22222222222: removed",
        ]))

        parser = PostfixParser(filename)
        self.assertEqual(parser.get_mail_stats(),
                         {self.mail1: {
                             'success': 2,
                             'error': 0
                         }})
Esempio n. 7
0
 def test_get_mail_stats_method__empty_file(self):
     filename = self.create_tmp_log('')
     parser = PostfixParser(filename)
     self.assertEqual(parser.get_mail_stats(), {})
Esempio n. 8
0
# -*- coding: utf-8 -*-

from postfix_parser.parser import PostfixParser

stats = PostfixParser('postfix.log').get_mail_stats()
for email, report in stats.items():
    print(
        'From <%s> was sent %s emails successfully, %s ones have errors and was not sent'
        % (email, report['success'], report['error']))