My guess is that you are having problems because you are attempting to share the mail socket connection object across processes. Instead, try having each process create its connection:
import multiprocessing as mlp
import imaplib as impl
def somefunc(domain, name, password, dirc):
mail = impl.IMAP4_SSL(domain)
mail.login(name, password)
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__':
jobs = []
for box in ("INBOX", "Sent"):
p = mlp.Process(
target = somefunc,
args = ("somedomain", "username", "password", box)
)
jobs.append(p)
p.start()
for i in jobs:
i.join()