Python:如何使用smtplib fas检查电子邮件

2024-09-28 19:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要检查很多电子邮件,成千上万的电子邮件。 我用smtplib来做这件事,我遇到了一些问题。 这需要太多的时间(尽管我使用多处理和通常的32个进程)。 有时我收到邮件时出错(超时)或其他错误,我不接受任何结果。 但如果我再次执行它,我不会收到错误,但可以为另一封电子邮件收到错误。 我在我的代码中做错了什么,以及如何改进它以获得更高的准确性和更少的错误。在

def check_email(email, mxRecord):
            time.sleep(2)
            host = socket.gethostname()
            try:
                server = smtplib.SMTP()
                server.set_debuglevel(0)
                addressToVerify = email
                server.connect(mxRecord)
                server.helo(host)
                server.mail('me@domain.com')
                code, message = server.rcpt(str(addressToVerify))
                server.quit()
                if code == 250:
                    res_email = email
                    res = str(num) + ' ' + str(res_email)
                    print res
                    return res
                else:
                    continue
            except:
                continue

Tags: hostserver进程电子邮件email错误时间邮件
1条回答
网友
1楼 · 发布于 2024-09-28 19:30:39

你只需在同一时间循环所有的邮件。。。在

def check_email(email, mxRecord):
        time.sleep(2)
        host = socket.gethostname()
        for line, line 1 in itertools.izip(email, mxRecord)
            try:
                server = smtplib.SMTP()
                server.set_debuglevel(0)
                addressToVerify = email
                server.connect(mxRecord)
                server.helo(host)
                server.mail('me@domain.com')
                code, message = server.rcpt(str(addressToVerify))
                server.quit()
                if code == 250:
                      res_email = email
                      res = str(num) + ' ' + str(res_email)
                      print res
                      return res
                else:
                    continue
                except:
                    continue

m = threading.Thread(name='daemon', target=check_email(email,mxRecord))
m.setDaemon(True)
m.start()

应该是这样的

相关问题 更多 >