Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. from __future__ import print_function
  2. from googleapiclient.discovery import build
  3. from httplib2 import Http
  4. from oauth2client import file, client, tools
  5. import base64
  6. import email
  7. from apiclient import errors
  8.  
  9. # If modifying these scopes, delete the file token.json.
  10. SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'
  11.  
  12.  
  13. def main():
  14. """Shows basic usage of the Gmail API.
  15. Lists the user's Gmail labels.
  16. """
  17. store = file.Storage('token.json')
  18. creds = store.get()
  19. if not creds or creds.invalid:
  20. flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
  21. creds = tools.run_flow(flow, store)
  22. service = build('gmail', 'v1', http=creds.authorize(Http()))
  23.  
  24. # # Call the Gmail API
  25. results = service.users().labels().list(userId='me').execute()
  26. labels = results.get('labels', [])
  27. results=service.users().messages().list(userId='me').execute()
  28. messages=results.get('messages',[])
  29.  
  30. result=service.users().messages().get(userId='me',id="1667b29605aa580f").execute()
  31. message=result.get('messages',[])
  32.  
  33. # print(GetMessage(service,'me','166877cf6d4bc254'))
  34. print(GetMimeMessage(service, 'me','166877cf6d4bc254'))
  35.  
  36. #
  37. # if not labels:
  38. # print('No labels found.')
  39. # else:
  40. # print('Labels:')
  41. # for label in labels:
  42. # print(label['name'])
  43. #
  44. # if not messages:
  45. # print('No messages found.')
  46. # else:
  47. # print('message:')
  48. # for headers in messages:
  49. # print(message['name'])
  50. #
  51. # print(messages)
  52. # print(labels)
  53. # print(message)
  54.  
  55.  
  56.  
  57. def GetMessage(service, user_id, msg_id):
  58. """Get a Message with given ID.
  59.  
  60. Args:
  61. service: Authorized Gmail API service instance.
  62. user_id: User's email address. The special value "me"
  63. can be used to indicate the authenticated user.
  64. msg_id: The ID of the Message required.
  65.  
  66. Returns:
  67. A Message.
  68. """
  69.  
  70. try:
  71. message = service.users().messages().get(userId=user_id, id=msg_id).execute()
  72.  
  73. print ('Message snippet: %s' % message['snippet'])
  74.  
  75.  
  76. return message
  77. except:
  78. print ('An error occurred: bliad')
  79.  
  80.  
  81. def GetMimeMessage(service, user_id, msg_id):
  82. """Get a Message and use it to create a MIME Message.
  83.  
  84. Args:
  85. service: Authorized Gmail API service instance.
  86. user_id: User's email address. The special value "me"
  87. can be used to indicate the authenticated user.
  88. msg_id: The ID of the Message required.
  89.  
  90. Returns:
  91. A MIME Message, consisting of data from Message.
  92. """
  93. try:
  94. message = service.users().messages().get(userId=user_id, id=msg_id,
  95. format='raw').execute()
  96. print ('Message snippet: %s' % message['snippet'])
  97.  
  98. msg_str = base64.urlsafe_b64decode(message['raw'].encode('ASCII'))
  99.  
  100. mime_msg = email.message_from_string(msg_str)
  101.  
  102. return mime_msg
  103. except:
  104. print ("error")
  105.  
  106.  
  107.  
  108. if __name__ == '__main__':
  109. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement