×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Chennaipy APRIL 2015
Slide 2
Slide 2 text
Python Imap & Gmail
Slide 3
Slide 3 text
@shrayasr Logic Soft
Slide 4
Slide 4 text
Email
Slide 5
Slide 5 text
Email
Slide 6
Slide 6 text
Email
Slide 7
Slide 7 text
Email POP3
Slide 8
Slide 8 text
Email POP3 IMAP
Slide 9
Slide 9 text
POP3 Post Office Protocol
Slide 10
Slide 10 text
SIMPLE POP3 Post Office Protocol
Slide 11
Slide 11 text
SIMPLE ONE MAILBOX POP3 Post Office Protocol
Slide 12
Slide 12 text
SIMPLE SSL/TLS ONE MAILBOX POP3 Post Office Protocol
Slide 13
Slide 13 text
SIMPLE SSL/TLS ONE MAILBOX MOVE POP3 Post Office Protocol
Slide 14
Slide 14 text
SIMPLE SSL/TLS ONE MAILBOX MOVE ALL PARTS POP3 Post Office Protocol
Slide 15
Slide 15 text
IMAP Internet Msg Access Protocol
Slide 16
Slide 16 text
IMAP Internet Msg Access Protocol ASYNC
Slide 17
Slide 17 text
IMAP Internet Msg Access Protocol ASYNC MAILBOXes
Slide 18
Slide 18 text
IMAP Internet Msg Access Protocol ASYNC CLIENTS MAILBOXes
Slide 19
Slide 19 text
IMAP Internet Msg Access Protocol ASYNC CLIENTS MAILBOXes SEARCHES
Slide 20
Slide 20 text
IMAP Internet Msg Access Protocol ASYNC CLIENTS MAILBOXes SEARCHES EXTENSIONS
Slide 21
Slide 21 text
Gmail @gmail.com
Slide 22
Slide 22 text
Settings > Forwarding and POP/IMAP /settings/security/lesssecureapps Requirements
Slide 23
Slide 23 text
Python
Slide 24
Slide 24 text
>>> import imaplib
Slide 25
Slide 25 text
>>> import imaplib Standard Library
Slide 26
Slide 26 text
CASES
Slide 27
Slide 27 text
Check the count of mails in my INBOX 1
Slide 28
Slide 28 text
email_count.py import imaplib client = IMAP4_SSL("imap.gmail.com", "993") client.login("
[email protected]
","barfoo") result, response = client.select("INBOX") if result == "OK": print "count is %s" % response[0]
Slide 29
Slide 29 text
Gmail Handling folders
Slide 30
Slide 30 text
Folders
Slide 31
Slide 31 text
Folders
Slide 32
Slide 32 text
Folders
Slide 33
Slide 33 text
“[Gmail]/” Prefix
Slide 34
Slide 34 text
[Gmail]/Spam SPAM
Slide 35
Slide 35 text
[Gmail]/Drafts DRAFTS
Slide 36
Slide 36 text
Gmail IMAP &
Slide 37
Slide 37 text
Gmail IMAP
Slide 38
Slide 38 text
Gmail IMAP EXT ENSIONS!
Slide 39
Slide 39 text
Gmail IMAP EXTENSIONS!
Slide 40
Slide 40 text
Mails sent to Vijay from 11 Apr to date 2
Slide 41
Slide 41 text
to: () after: before:
Slide 42
Slide 42 text
?
Slide 43
Slide 43 text
SEARCH IMAP
Slide 44
Slide 44 text
SEARCH X-‐GM-‐RAW IMAP Gmail
Slide 45
Slide 45 text
Mails sent to Vijay from 11 Apr to date 2
Slide 46
Slide 46 text
# ... client.select("[Gmail]/Sent Mail") client.search(None, '(X-GM-RAW "to: (
[email protected]
) after:2015/4/11 before:2015/4/26")') # ... advanced_search.py
Slide 47
Slide 47 text
# ... client.select("[Gmail]/Sent Mail") client.search(None, '(AND (TO "
[email protected]
") (FROM "
[email protected]
"))') # ... imap_search.py
Slide 48
Slide 48 text
Add label “Foo” to all mails sent to me from
[email protected]
3
Slide 49
Slide 49 text
STORE IMAP
Slide 50
Slide 50 text
STORE X-‐GM-‐LABELS IMAP Gmail
Slide 51
Slide 51 text
# ... client.select("INBOX") emails = client.search(None, '(FROM "
[email protected]
")') for email in emails[1][0].split(): client.store(email, '+X-GM-LABELS', "foo") # ... add_foo_label.py
Slide 52
Slide 52 text
RECAP
Slide 53
Slide 53 text
• IMAP, POP3
Slide 54
Slide 54 text
• IMAP, POP3 • imaplib
Slide 55
Slide 55 text
• IMAP, POP3 • imaplib • Gmail IMAP extensions X-‐GM-‐RAW, X-‐GM-‐LABELS
Slide 56
Slide 56 text
/Fin @shrayasr