2
我有以下一段代碼,我試圖從郵箱的不同目錄中同時獲取郵件。但是,它正在顯示以下問題。附上縮短的堆棧跟蹤。Python多處理imaplib拋出錯誤
import multiprocessing as mlp
import imaplib as impl
def somefunc(dirc):
mail.select(dirc)
result, data = mail.uid("search", None, "All")
uids = data[0].split()
print dirc
for mail_id in uids:
result, data = mail.uid("fetch", mail_id, "(RFC822)")
if __name__ == '__main__':
mail = impl.IMAP4_SSL("somedomain")
mail.login("username","password")
jobs = []
p1 = mlp.Process(target = somefunc, args = ("INBOX",))
jobs.append(p1)
p1.start()
p2 = mlp.Process(target = somefunc, args = ("Sent",))
jobs.append(p2)
p2.start()
for i in jobs:
i.join()
它拋出錯誤:
Process Process-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
Process Process-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
........
File "/usr/lib/python2.7/imaplib.py", line 859, in _command
raise self.abort('socket error: %s' % val)
abort: socket error: [Errno 32] Broken pipe
typ, dat = self._simple_command(name, mailbox)
........
error: [Errno 104] Connection reset by peer
豈不是可以同時做IMAP連接???
謝謝... :)
感謝的人,我就想通了,並已發佈了更新...感謝您的及時答覆... :) –
長相酷似我貼在我的回答中,更新前20分鐘:-)我的答案是針對每個進程需要獨特的連接,因爲套接字。它確實與想要準備不同的郵箱目錄無關。 – jdi
是的,我看到你的語言更適合人們......高興...... :) –