2012-02-23 59 views
2

首先,注意:我是一名完整的編程愛好者,既不知道珍珠,也不知道python或java。我需要的是一個簡單的命令,用於將我的gmail帳戶中的特定消息下載到文件中。假設每條消息都有一個唯一的ID。我需要一個訪問 郵箱的腳本,並將ID爲x的郵件作爲文本文件下載,如果有附件,則將它們保存爲適當類型的文件(因此,pdf 附件將保存爲pdf文件)。通過unix/linux腳本從gmail下載項目

例如,這裏有一個腳本,我可以使用(我查了一下,它的作品)

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

該語言是一個命令行管道鏈,它使用curl,awk和sed來獲取/修改google atom XML feed。從技術上講,你可以稱之爲shell腳本,但是一旦使用多種語言/工具。 – 2012-02-23 19:19:47

+0

謝謝馬克!那麼你知道如何去做我所要求的嗎? – Aryeh 2012-02-23 19:23:09

+0

沒有。我從來沒有嘗試從谷歌通過命令行獲取的東西。但它不會是一個簡單的單行,特別是如果你有多個附件的郵件。你必須通過atom feed來查看附件是否完全列出,找出它們的ID是什麼,如果谷歌甚至提供了一種方法從feed中提供的附件中提取附件等等,然後循環所有的附件依次取出。 – 2012-02-23 19:24:40

回答

2

我建議使用feedparser模塊來解析RSS源(可以使用Requests模塊獲取該源)。

這將打印未讀電子郵件的主題。如果您需要從Feed中提取更多詳細信息,請閱讀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)。