Синтаксическая ошибка Python в сценарии извлечения адреса электронной почты - PullRequest
0 голосов
/ 20 февраля 2012

Я нашел этот скрипт Python на метафильтр и изменил адреса и передавал по мере необходимости, но я получаю ошибку скрипта в самой последней строке.В ошибке маленький символ в каратах находится под кавычкой после печати "\ n

. Я вообще не кодер, не знаю, куда обратиться. Любая помощь будет принята с благодарностью.

То, что я на самом деле хочу сделать, это вытащить адреса «От», а не к и CC, но я решил, что сначала все получится правильно.

Скрипт был запущен в Windows с использованием Python 3.2 и перенаправил вывод втекстовый файл.

import email
import getpass
import imaplib

HOST = "mail.-----.com"
USER = "sales@-----.com"
FOLDER = "Folder"

connection = imaplib.IMAP4_SSL(HOST)
res, data = connection.login(USER, getpass.getpass())
assert res == "OK"

res, count = connection.select(FOLDER)
assert res == "OK"

res, (msg_nums,) = connection.search(None, "ALL")
assert res == "OK"

for msg_num in msg_nums.split():
    res, message_text = connection.fetch(msg_num, "(RFC822)")
    assert res == "OK"

    message = email.message_from_string(message_text[0][1])
    tos = message.get_all("From") or []
    ccs = message.get_all("Cc") or []
    all_recipients = email.Utils.getaddresses(tos + ccs)
    print "\n".join(addr.lower() for realname, addr in all_recipients)

1 Ответ

3 голосов
/ 20 февраля 2012

print - это функция в Python 3, поэтому она должна быть:

print("\n".join(addr.lower() for realname, addr in all_recipients))

Сценарий, вероятно, изначально был написан для использования с Python 2.x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...