Поиск гиперссылок в теле письма gmail с помощью IMAP - PullRequest
0 голосов
/ 08 ноября 2019

Смысл этого скрипта - найти гиперссылки в электронных письмах и автоматически открывать их. В настоящее время я застрял в поисковой части.

Сценарий не может получить ссылку из тела письма. Гиперссылка должна выглядеть так:

https://something.com/verify/c4b7668ad547922226426896f

Что-то не так с моим регулярным выражением?

def process_mailbox(M):
    rv, data = M.search(None, specific_email_addy)
    if rv != 'OK':
        print "No messages found!"
        return

    for num in data[0].split():
        rv, data = M.fetch(num, '(RFC822)')
        if rv != 'OK':
            print "ERROR getting message", num
            return

        msg = email.message_from_string(data[0][1])

        raw_email = data[0][1] # here's the body, which is raw headers and html and body of the whole email including headers and alternate payloads
        msg = email.message_from_string(raw_email)

        for part in msg.walk():
            # each part is a either non-multipart, or another multipart message
            # that contains further parts... Message is organized like a tree
            if part.get_content_type() == 'text/html':
                plain_text = part.get_payload()

                link_pattern = re.compile('<a[^>]+href=\'(.*?)\'[^>]*>(.*)?</a>')
                search = link_pattern.search(plain_text)
                if search is not None:
                    print("Link found! -> " + search)
                    break
                else:
                    print("No links were found.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...