Рубрики
Без рубрики

Обработка содержимого электронной почты

Часть 4 в серии статей о внедрении системы уведомлений с использованием Gmail и Line Bot HI …. Tagged с Google, Python, API, электронной почтой.

Google API Gmail Line уведомления (7 серии деталей)

Часть 4 в серии статей о реализации системы уведомлений с использованием Gmail и Линейный бот

Привет. Вернемся снова для очередного взноса.

Сегодня я буду работать через доступ к частям электронного письма. В Части 3 мы добрались до сцены, где я создал сообщение электронной почты. Emailmessage объект. Вы можете не поверить, что это готово к использованию. Поскольку, если бы вы играли с этим, вы могли бы обнаружить, что в нем все еще было много персонажей, не закодированных не ASCII, но это нормально. Как только мы начнем использовать методы участника, предоставленные сообщение электронной почты. Emailmessage объект. Все будет ясно.

Итак, быстрый обзор: мы выполнили наш поиск, получили наши идентификаторы сообщения, сводили его к идентификаторам сообщений за вычетом Threadid

Затем мы использовали get_message (служба, msg_id) Чтобы вернуть сообщение электронной почты. Emailmessage объект.

single_email = get_message(service, some_id)

Если вы напечатаете это с print (single_email) Вы получите строковое представление всего электронного письма. Если это не в ASCII, вы можете увидеть линию темы, которая выглядит так.

Subject: =?ISO-2022-JP?B?GyRCRn5CYDw8Pn//yROJCpDTiRpJDsbKEI=?=

И иметь тело электронной почты, которое так же запутанно. Но это нормально. Мы будем использовать методы, предоставленные сообщение электронной почты. Emailmessage Чтобы вернуть эту строку возвращать в читаемой форме.

Вот список некоторых методов, которые мы можем использовать:

single_email.add_alternative()          single_email.get_params()
single_email.add_attachment()           single_email.get_payload()
single_email.add_header()               single_email.get_unixfrom()
single_email.add_related()              single_email.is_attachment()
single_email.as_bytes()                 single_email.is_multipart()
single_email.as_string()                single_email.items()
single_email.attach()                  single_email.iter_attachments()
single_email.clear()                   single_email.iter_parts()
single_email.clear_content()           single_email.keys()
single_email.defects                   single_email.make_alternative()
single_email.del_param()               single_email.make_mixed()
single_email.epilogue                  single_email.make_related()
...
...

Заголовок можно просто получить с помощью single_email.get ('headername')

Примеры:

from = single_email.get("from")
subject = single_email.get("subject")

Чтобы проверить, является ли электронное письмо многочасовым; single_email.is_multipart () Вернут Истинный или Ложный Есть много методов, которые можно использовать для деконструкции электронной почты. К счастью для меня. Электронные письма, с которыми я имею дело, сгенерированы системой, а также очень простой простой текст без Multipart.

Давайте посмотрим на тему электронного письма.

Subject: =?ISO-2022-JP?B?GyRCRn5CYDw8Pn//yROJCpDTiRpJDsbKEI=?=

Используя получить Метод:

sub = single_email.get('subject')
print(subject)

Я получил:

入退室情報のお知らせ

Обратите внимание, что мне на самом деле не нужно было знать кодировку персонажа. Это было связано с тем, как был настроен объект SARSER с использованием аргументов Политика = политика.default в предыдущем посте.

Так что, как вы можете видеть, получить детали заголовка довольно просто. Как насчет получения тела электронной почты? Опять же, это довольно просто при работе с одним не-мультипарным электронным письмом. Я просто буду использовать get_content ()

body = single_email.get_content()
print(body)
Redacted Redacted
�=J_] �@O5 �12K^0[0=^ 様の入退室情報をお知らせします。

【セーフティメール情報】
2021-02-01 19:08:26 に退室しました。

※なお、このメールに返信することはできませんのでご注意ください

Если вы имеете дело с многочисленным электронным письмом, вам нужно будет использовать Walk () метод В сочетании с get_content_maintype () и get_content_subtype () Чтобы идентифицировать или найти такие вещи, как простой текст и HTML или бинарные вложения. Для этого уже существует хорошая документация по Python. Так что я не буду вдаваться в это здесь.

Вот и все для этой статьи. Затем я дам некоторую информацию о Regex для работы с японцем. Но вы также можете взглянуть на этот предыдущий пост.

Google API Gmail Line уведомления (7 серии деталей)

Оригинал: “https://dev.to/basman/processing-email-contents-164j”