2012-02-23 9 views
2

最初に、私はプログラミングの完全なアマチュアであり、パールもパイソンもjavaも知らない。私が必要とするのは、自分のGmailアカウントから特定のメッセージをファイルにダウンロードする簡単なコマンドです。各メッセージに固有のIDがあるとします。 メールボックスにアクセスし、ID xのメッセージをテキストファイルとしてダウンロードするスクリプトが必要です。 添付ファイルがある場合は、適切なファイルタイプとして保存します(pdf 添付ファイルはpdfファイルとして保存されます)。 )。gmailからunix/linuxスクリプトを使ってアイテムをダウンロードする

は例えば、ここで未読メールのリストをダウンロードするための、私が使用することができますスクリプト(私はそれが動作することを確認)

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

その言語は、カール、AWK、および/フェッチグーグル原子XMLフィードをマッサージするsedを使用してコマンドラインパイプ鎖です。技術的には、それをシェルスクリプトと呼ぶことができますが、一度複数の言語/ツールを使用します。 –

+0

ありがとうございました!あなたは私が求めたことをどうやってやるのか知っていますか? – Aryeh

+0

私はコマンドライン経由でGoogleからのものを取得しようとしたことはありません。しかし、特にあなたが添付ファイル付きの複数のメールを持っている場合、それは単純な1ライナーではありません。添付ファイルがすべてリストされているかどうかを調べるには、アトムフィードを調べなければならないでしょう。グーグルがフィードなどの添付ファイルからファイルを取得する方法を提供しているのであれば、すべての添付ファイルを順番に取得します。 –

答えて

2

feedparserモジュールを使用してRSSフィード(Requestsモジュールでフェッチできる)を解析することをおすすめします。

未読メールの件名が印刷されます。フィードから詳細を抽出する必要がある場合は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経由)異なるアプローチを必要と思い、そのために私は見ることができるように任意の添付ファイルの情報が含まれていません。

関連する問題