mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-11-03 19:30:54 +00:00 
			
		
		
		
	mail_log.py: include sent mail in the logins report in a new smtp column
This commit is contained in:
		
							parent
							
								
									87ec4e9f82
								
							
						
					
					
						commit
						9c7820f422
					
				@ -105,7 +105,7 @@ def scan_mail_log(env):
 | 
				
			|||||||
        "scan_time": time.time(),  # The time in seconds the scan took
 | 
					        "scan_time": time.time(),  # The time in seconds the scan took
 | 
				
			||||||
        "sent_mail": OrderedDict(),  # Data about email sent by users
 | 
					        "sent_mail": OrderedDict(),  # Data about email sent by users
 | 
				
			||||||
        "received_mail": OrderedDict(),  # Data about email received by users
 | 
					        "received_mail": OrderedDict(),  # Data about email received by users
 | 
				
			||||||
        "logins": OrderedDict(),  # Data about Dovecot login activity
 | 
					        "logins": OrderedDict(),  # Data about login activity
 | 
				
			||||||
        "postgrey": {},  # Data about greylisting of email addresses
 | 
					        "postgrey": {},  # Data about greylisting of email addresses
 | 
				
			||||||
        "rejected": OrderedDict(),  # Emails that were blocked
 | 
					        "rejected": OrderedDict(),  # Emails that were blocked
 | 
				
			||||||
        "known_addresses": None,  # Addresses handled by the Miab installation
 | 
					        "known_addresses": None,  # Addresses handled by the Miab installation
 | 
				
			||||||
@ -467,9 +467,13 @@ def scan_dovecot_login_line(date, log, collector, protocol_name):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if m:
 | 
					    if m:
 | 
				
			||||||
        # TODO: CHECK DIT
 | 
					        # TODO: CHECK DIT
 | 
				
			||||||
        user, rip = m.groups()
 | 
					        user, host = m.groups()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if user_match(user):
 | 
					        if user_match(user):
 | 
				
			||||||
 | 
					            add_login(user, date, protocol_name, host, collector)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def add_login(user, date, protocol_name, host, collector):
 | 
				
			||||||
            # Get the user data, or create it if the user is new
 | 
					            # Get the user data, or create it if the user is new
 | 
				
			||||||
            data = collector["logins"].get(
 | 
					            data = collector["logins"].get(
 | 
				
			||||||
                user,
 | 
					                user,
 | 
				
			||||||
@ -487,9 +491,9 @@ def scan_dovecot_login_line(date, log, collector, protocol_name):
 | 
				
			|||||||
            data["earliest"] = date
 | 
					            data["earliest"] = date
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            data["totals_by_protocol"][protocol_name] += 1
 | 
					            data["totals_by_protocol"][protocol_name] += 1
 | 
				
			||||||
            data["totals_by_protocol_and_host"][(protocol_name, rip)] += 1
 | 
					            data["totals_by_protocol_and_host"][(protocol_name, host)] += 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if rip not in ("127.0.0.1", "::1") or True:
 | 
					            if host not in ("127.0.0.1", "::1") or True:
 | 
				
			||||||
                data["activity-by-hour"][protocol_name][date.hour] += 1
 | 
					                data["activity-by-hour"][protocol_name][date.hour] += 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            collector["logins"][user] = data
 | 
					            collector["logins"][user] = data
 | 
				
			||||||
@ -568,6 +572,8 @@ def scan_postfix_submission_line(date, log, collector):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            collector["sent_mail"][user] = data
 | 
					            collector["sent_mail"][user] = data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # Also log this as a login.
 | 
				
			||||||
 | 
					            add_login(user, date, "smtp", client, collector)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Utility functions
 | 
					# Utility functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user