タイムアウトが発生しないため、メール送信が失敗したときに smtplib がプログラムを拘束することに問題があります。私が使用しているサーバーには 2.4 を超える python はありませんし、今後もありません。そのため、以降のバージョンの python では SMTP コンストラクターへのタイムアウト引数を使用できません。
Python 2.4 のドキュメントは、SMTP クラスに「タイムアウト」引数がないことを示しています。
class SMTP([host[, port[, local_hostname]]])
では、この機能をシミュレートするにはどうすればよいでしょうか。