【问题标题】:Connection actively refused when trying to connect to emails on localhost尝试连接到本地主机上的电子邮件时主动拒绝连接
【发布时间】: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


【解决方案1】:

假设您的主机上运行着一个电子邮件服务器,它允许 IMAP4 连接,我最好的选择是它不会监听本地主机上的连接。换句话说,您的主机至少有一个标准 IP 地址(可能)加上默认的 localhost,但如果服务器在标准地址上运行,而不是在 127.0.0.1 或 0.0.0.0 上运行,那么您的连接将被拒绝。

【讨论】:

    猜你喜欢
    • 2013-07-08
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2016-10-08
    • 2015-07-30
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多