загрузка элементов из gmail через скрипт unix / linux - PullRequest
2 голосов
/ 23 февраля 2012

Во-первых, примечание: я - полный любитель в программировании и не знаю ни перла, ни Python, ни Java. Мне нужна простая команда, которая загружает конкретное сообщение из моей учетной записи Gmail в файл. Допустим, каждое сообщение имеет уникальный идентификатор. Мне нужен скрипт, который обращается почтовый ящик, и загружает сообщение с идентификатором х в виде текстового файла, и, если есть вложения, он сохраняет их как соответствующий тип файла (так PDF вложение будет сохранено в виде файла PDF).

Например, вот скрипт, который я могу использовать (я проверил, что он работает)

curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/<title>\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p"

для скачивания списка непрочитанных писем. Конечно, то, о чем я прошу, должно быть таким же простым. Может кто-нибудь дать мне код? (Примечание: я даже не знаю, на каком языке написано выше.) Большое спасибо!

1 Ответ

2 голосов
/ 24 февраля 2012

Я рекомендую использовать модуль feedparser для анализа RSS-канала (который можно получить с помощью модуля Запросы ).

Это напечатает темы ваших непрочитанных писем. Если вам нужно извлечь больше информации из ленты, прочитайте feedparser docs .

import feedparser
import requests

feed = requests.get('https://mail.google.com/mail/feed/atom', auth=('yourusername', 'yourpassword'))
emails = feedparser.parse(feed.text.encode('UTF-8'))

for email in emails.entries:
  print email.title

Однако, как я вижу, фид gmail не содержит никакой информации о вложениях, для этого вам потребуется другой подход (возможно, через IMAP).

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