2012-02-23 3 views
2

첫 번째, 메모 : 저는 프로그래밍에서 완전한 아마추어이며 진주도 파이썬이나 자바 알지도 못합니다. 필요한 것은 내 Gmail 계정의 특정 메일을 파일로 다운로드하는 간단한 명령입니다. 각 메시지에 고유 한 ID가 있다고 가정 해 보겠습니다. 편지함에 에 액세스하고 ID x 인 메시지를 텍스트 파일로 다운로드하고 첨부 파일이 인 경우 적절한 유형의 파일로 저장합니다 (pdf 첨부 파일이 pdf 파일로 저장 됨).).유닉스/리눅스 스크립트를 통해 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 피드를 가져 오거나 마사지하는 명령 줄 파이프 체인입니다. 기술적으로는 쉘 스크립트라고 할 수 있지만 여러 언어/도구를 사용합니다. –

+0

감사 마크! 그럼 내가 요청한 것을하는 법을 아십니까? – Aryeh

+0

아니요. 나는 명령 행을 통해 구글에서 물건을 가져 오는 것을 시도한 적이 없다. 그러나 첨부 파일이있는 메일이 여러 개인 경우에는 단순한 한 줄 짜기가되지 않습니다. 첨부 파일이 모두 나열되어 있는지 찾기 위해 원자 피드를 살펴보고, ID가 무엇인지 파악하고, Google이 피드 등에서 제공된 첨부 파일을 가져올 수있는 방법을 제공한다면 ... 루프를 반복해야합니다. 모든 첨부 파일을 차례로 가져옵니다. –

답변

2

feedparser 모듈을 사용하여 Requests 모듈로 가져올 수있는 RSS 피드를 구문 분석하는 것이 좋습니다.

읽지 않은 이메일의 제목을 인쇄합니다. 피드에서 자세한 내용을 추출해야하는 경우 feedparser docs을 읽으십시오. 내가 (아마도 IMAP를 통해) 다른 접근 방식을 필요 했어 그것을 위해 그렇게 볼 수

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의 피드까지 첨부 파일 정보가 포함되어 있지 않습니다.

관련 문제