| « Pythonでsmtplib及びemailでBccヘッダーを懇切丁寧に指定するとダメな件について | MacBookProのisightが壊れた » |
Pythonでsmtplibなどのタイムアウト時間を設定してみた
ことだまんです。
smtplibやurllibなどのソケットを使う場合、タイムアウト時間を指定したい場合がある。
調べるのも面倒なのでスクリプトの最初に下記を記述してみた。
import socket
socket.setdefaulttimeout(20)
こんな感じでスマートじゃなさげだけど、ソケットに対して直接タイムアウト時間を指定してみた。
一応うまくいった。。。
上の例は20秒。
ちなみに例外を拾うときは
import socket, sys
socket.setdefaulttimeout(20)
try:
#何かの処理
except socket.error:
errno, errstr = sys.exc_info()[:2]
if errno == socket.timeout:
print u"timeoutした"
else:
print u"タイムあうと以外のsocketえらーだなこりゃ"
みたいな感じ
exceopt socket.timeoutでもおk
smtplibの例外はこっち
http://pythonjp.sourceforge.jp/dev/library/smtplib.html