2015-07-24 4 views
0

Я использую imaplib для чтения электронных писем на моем localhost через скрипт python. Для этого я использую Xampp и MercuryMail.Соединение активно отказалось при попытке подключиться к электронной почте на localhost

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 электронных писем и проверить их на конкретный предмет, но я не могу проверить его, не имея возможности подключиться. Я никогда не использовал python с электронными письмами или MercuryMail, поэтому я могу пропустить что-то простое.

+0

Проверьте настройки брандмауэра. Или, возможно, установленный порт для Mecury Mail занят другим процессом. – schellingerht

ответ

0

Предполагая, что на вашем хосте работает почтовый сервер, который разрешает соединения IMAP4, лучше всего то, что он не слушает подключения на localhost. Другими словами, ваш хост имеет хотя бы один стандартный IP-адрес (возможно) плюс локальный хост по умолчанию, но если сервер работает на стандартном адресе, а не на 127.0.0.1 или 0.0.0.0, тогда ваше соединение будет отклонено.

 Смежные вопросы

  • Нет связанных вопросов^_^