【发布时间】:2015-10-15 12:29:24
【问题描述】:
我正在使用 imaplib 通过 python 脚本阅读本地主机上的电子邮件。为此,我使用 Xampp 和 MercuryMail。
import imaplib
import email
#takes args for subject to check for
def get_subject(subject):
#most recent 15 emails
for i in range( latest_email_id, latest_email_id-15, -1 ):
typ, data = mail.fetch( str(i), '(RFC822)' )
msg = email.message_from_string(data[0][1])
varSubject = msg['subject']
if subject == varSubject:
return 1
mail = imaplib.IMAP4_SSL('localhost')
mail.login("user","pass")
mail.list()
mail.select("inbox")
typ, data = mail.search(None, 'ALL')
ids = data[0]
id_list = ids.split()
latest_email_id = int( id_list[-1] )
typ, data = mail.fetch( str(latest_email_id), '(RFC822)' )
print(get_subject(subject = 'Test'))
mail.logout()
当我运行它时,它返回一个错误,说连接主动被拒绝。如果我尝试连接到 gmail 而不是 localhost,则连接正常。我通过在设置中添加用户和密码来设置 MercuryMail。我还有另一个脚本,可以将电子邮件从 localhost 发送到 localhost,并且这些电子邮件会通过。该脚本应获取最新的 15 封电子邮件并检查它们是否有特定主题,但我无法在无法连接的情况下对其进行测试。我以前从未在电子邮件或 MercuryMail 中使用过 python,所以我可能会遗漏一些简单的东西。
【问题讨论】:
-
检查防火墙设置。或者可能,设置的端口 voor Mecury Mail 正被另一个进程占用。
标签: python email xampp localhost imaplib