Я использую Linux-машину (Debian) и установил на нее fetchmail и procmail. Прямо сейчас он может получать письма, отправленные на мой адрес электронной почты каждую минуту. Однако файл, извлекаемый fetchmail, не является обычным html-файлом, но содержит символы для печати в кавычках.

Моя цель - получить исходный HTML-код письма, как если бы я открыл Outlook в Windows, щелкнул правой кнопкой мыши по почте и выбрал "Показать исходный код".

Также важно иметь возможность делать это программно, так как я хочу автоматизировать задачу.

Изменить: мой первоначальный вопрос не хватает точности, поэтому здесь больше информации о моей проблеме. Один из моих клиентов каждый день отправляет мне электронное письмо, содержащее таблицу с данными о продажах за предыдущий рабочий день. Прямо сейчас, каждый день, я должен копировать, вставлять данные из электронной почты в файл EXCEL. Однако, поскольку это очень повторяющаяся задача, я хочу найти решение, которое может сделать это для меня автоматически. Я знаю, как записывать данные в EXCEL-файл с помощью Python, и у меня есть представление о том, как извлечь информацию из HTML-документа с помощью некоторых библиотек Python.

Поэтому я решил использовать crontab с Linux, fetchmail и procmail, чтобы сделать следующее: каждую минуту я проверяю свой почтовый ящик, получил ли я письмо от своего клиента. Если это так, я запускаю скрипт Python для этого файла, чтобы получить информацию. После этого я ввожу эту информацию в файл EXCEL и отправляю ее себе.

Сценарий отлично работает на моем ПК с исходным кодом HTML-сообщения электронной почты, полученного из Outlook. Однако на моей машине с Linux это не работает. Я открыл исходный код файла электронной почты со своего компьютера с Linux и обнаружил, что часть HTML-кода была изменена.

2 ответа2

0

Большое спасибо всем за ваши ответы.

Хотя я нашел свое собственное решение, я думаю, что в будущем я должен рассмотреть возможность использования некоторых из упомянутых вами решений.

Я наконец нашел решение для того, что искал. У меня была проблема, когда я открывал файл электронной почты, полученный с помощью fetchmail, в нем было много специальных знаков, которые были добавлены. Так что в браузере это не выглядело хорошо, и в тех местах, где его не должно быть, были знаки "=".

Поэтому, чтобы решить эту проблему, я увидел, что когда я открываю файл с помощью Python, в конце каждой строки появляются символы "=" и \n ". Поэтому, когда я удалил все «=» и «\n» в конце строк, файл выглядел хорошо, когда я снова открыл его в веб-браузере.

0

Кажется, у вас есть некоторые неверные предположения здесь. Электронная почта не обязательно должна иметь одну часть тела и может не быть в HTML.

Без дополнительной информации о том, что вы действительно хотите, это будет очень умозрительно; но что-то вроде

:0B:
* Content-type: text/html
* Content-transfer-encoding: quoted-printable
| quoted-printable --decode >>extracted.html

будет декодировать QP и добавлять к растущему файлу полезных нагрузок HTML (при условии, что у вас есть команда с именем quoted-printable с опцией --decode для декодирования QP).

Это, вероятно, бесполезно, поскольку большинство полезных нагрузок HTML находятся в многокомпонентных контейнерах MIME. Выше предполагается, что сообщение имеет одну полезную нагрузку верхнего уровня, которая является text/html и закодирована в quoted-printable, и просто не будет работать, если это не так.

Procmail не особенно хорош в обходе структур MIME, но что-то подобное должно быть легко написать, например, с помощью Python и стандартной библиотеки email . Есть также автономные инструменты, такие как ripmime которые позволяют извлекать выбранные полезные данные из сообщения MIME.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .