Una de las dificultades para asegurar SMTP reside en el protocolo en sí, específicamente en las advertencias en RFC 5321 que ofrecen proscripciones sobre el tiempo de espera de una sesión. Una implementación fiel no proporciona facilidad para cronometrar una sesión. Lo ideal sería ignorar esas recomendaciones y establecer un tiempo de espera de sesión para la sesión de correo. Esto evitará, por ejemplo, cualquier ataque en el que se utilicen grandes demoras para enviar datos carácter por carácter con grandes tamaños de correo. Por ejemplo, si tiene un servidor de correo con un límite de tamaño de correo de 10 MB, es bastante fácil escribir un script que envíe un correo falso a su servidor y escriba un mensaje de Lorem Ipsum, un carácter a la vez hasta el límite de 10 MB, pero Retrasando cada personaje por 1 - 2 minutos. Teóricamente, sin un límite de sesión, tal sesión de correo podría durar alrededor de 10 millones de minutos. Así que ahora ejecute un script que simplemente inicie bots que hacen esto desde cientos de lugares en la web, y muy pronto los bots tendrán todas sus conexiones vinculadas (asumiendo que tiene límites de conexión o está usando un grupo de conexiones).
Idealmente, uno configuraría un temporizador desde el momento en que se emitió el comando DATA hasta el momento en que se emitió el "CRLF. CRLF". Algo así como 5 minutos aproximadamente para que todos los datos se transmitan debe ser razonable. Y viola el RFC y simplemente interrumpe la conexión si supera ese tiempo de espera. Los clientes bien educados nunca se acercarán a ese límite e incluso las personas que utilizan el terminal de línea de comandos deberían poder enviar datos dentro de ese período de tiempo, suponiendo que saben cómo escribir.