In scenarios like these, keep track of protocol violations but don't penalize the client if exempted:
[2024-08-10 22:51:20.178] DEBUG[379068]: socket.c:768 tcp_multilistener: Accepting new SMTP connection from CLIENTIP
[2024-08-10 22:51:20.178] DEBUG[379068]: node.c:325 __bbs_node_request: Allocated new node with ID 2 (lifetime ID 2)
[2024-08-10 22:51:20.179] DEBUG[379092]: thread.c:106 thread_register: Thread 379092 spawned from l->handler started by thread 379068 at socket.c:781 tcp_multilistener()
[2024-08-10 22:51:20.180] DEBUG[379092]: node.c:2149 bbs_node_begin: Running BBS for node 2
[2024-08-10 22:51:20.180] AUTH[379092]: node.c:2150 bbs_node_begin: New SMTP connection to node 2 from CLIENTIP:59285
[2024-08-10 22:51:20.180] DEBUG[379092]: net_smtp.c:427 handle_connect: 0x7fd217ffdf90 <= 220-DOMAIN ESMTP Service Ready
[2024-08-10 22:51:20.182] WARNING[379092]: net_smtp.c:454 handle_connect: Pregreet: 18 bytes received before banner finished
[2024-08-10 22:51:20.182] DEBUG[379092]: net_smtp.c:348 smtp_tarpit: 0x7fd217ffdf90: Current number of SMTP failures: 3
[2024-08-10 22:51:20.182] DEBUG[379092]: net_smtp.c:461 handle_connect: 0x7fd217ffdf90 <= 220 DOMAIN ESMTP Service Ready
[2024-08-10 22:51:20.182] DEBUG[379092]: net_smtp.c:2866 handle_client: 0x7fd217ffdf90 => HELO SERVERIP
[2024-08-10 22:51:20.182] DEBUG[379092]: net_smtp.c:348 smtp_tarpit: 0x7fd217ffdf90: Current number of SMTP failures: 3
[2024-08-10 22:51:20.182] DEBUG[379092]: net_smtp.c:376 smtp_tarpit: Tarpitting node 2 for 8000 ms
[2024-08-10 22:51:20.182] DEBUG[379092]: node.c:441 bbs_node_safe_sleep: Sleeping on node 2 for 8000 ms
[2024-08-10 22:51:28.190] WARNING[379092]: net_smtp.c:566 handle_helo: HELO/EHLO hostname 'SERVERIP' does not resolve to client IP CLIENTIP
[2024-08-10 22:51:28.190] DEBUG[379092]: net_smtp.c:618 handle_helo: 0x7fd217ffdf90 <= 250 DOMAIN at your service [CLIENTIP]
You must be