Without timeouts, smtplib.SMTP() / imaplib.IMAP4_SSL() / paramiko.Transport()
hang indefinitely when the remote server is down or firewall-dropped, blocking
the entire background thread and eventually freezing the app.
- SMTP: 30s connect/operation timeout
- IMAP: 30s connect/operation timeout
- SFTP (paramiko): 15s socket connect, 15s banner, 30s auth
- SMB and FTP already had timeouts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>