前提・実現したいこと
プログラム初心者です。
pythonでメールを用いた練習プログラムを作成しています。
具体的にはヤフーメールに届いたメールを5秒ごとにチェックし、
特定の送信者からメールが来たら別の場所へシグナルを発信する、ようなプログラムです。
発生している問題・エラーメッセージ
稼働してしばらくは上手く動きますが、しばらくすると
socket error: [Errno 32] Broken pipe
というメッセージが5秒ごとに表示されます。
該当のソースコード
下記のようなプログラムです
server= "imap.mail.yahoo.co.jp"
adress="xxxxx@yahoo.co.jp"
password="xxxxx"
・
・
・
Mm = imaplib.IMAP4_SSL(server)
Mm.login(adress,password)
isFirst = True
mail_no = 0
while(True):
try:
Mm.select()
typ, data = Mm.search(None, 'ALL')
print("NO NEW MAIL")
if(isFirst):
isFirst = False
mail_no = len(data[0].split())
else:
if(mail_no != len(data[0].split())):
print("SIGNAL MAIL")
mail_no = len(data[0].split())
d = data[0].split()[mail_no - 1]
typ, data = Mm.fetch(d, '(RFC822)')
email_message = email.message_from_bytes(data[0][1])
あなたの回答
tips
プレビュー