此代码使用gmail api通过gmail向我发送了特定用户的第一条消息。
如何使用gmail-api在我的gmail中获取两个特定用户的第一条消息 我可以在这里使用if else语句吗?
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
import time
SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'
def main():
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('gmail', 'v1', http=creds.authorize(Http()))
# Call the Gmail API to fetch INBOX
#results = service.users().messages().list(userId='me',maxResults=10,labelIds = ['INBOX']).execute()
results = service.users().messages().list(userId='me', q='googlecommunityteam-noreply@google.com',labelIds = ['INBOX']).execute()
messages = results.get('messages', [])
if not messages:
print ("\nGmail: \n No gmail mails found.\n")
else:
print ("Gmail:\n")
msg = service.users().messages().get(userId='me', id=messages[0]['id']).execute()
print(msg['snippet'])
print(msg['internalDate'])
if __name__ == '__main__':
main()
答案 0 :(得分:0)
Gmail搜索中的Q参数与在Gmail网站中搜索完全一样,因此,如果您转到gmail并单击搜索框中右侧的箭头。向上将弹出搜索构建器
您可以在其中玩耍,并调出您想要的任何类型的搜索
from:(Test@gmail.com) to:(me@gmail.com)
然后您可以将其拿走并直接转入您请求中的q
results = service.users().messages().list(userId='me', q='from:(Test@gmail.com) to:(me@gmail.com)',labelIds = ['INBOX']).execute()
现在所有所说的都是我在周围玩的,如果您输入两个电子邮件地址,我将无法使它返回两个不同用户的电子邮件,它只能返回他们都在外地的电子邮件。因此,我认为您能够找到两个不同用户发送给您的第一封电子邮件的唯一方法是
results = service.users().messages().list(userId='me', q='from:(user1@gmail.com) to:(me@gmail.com)',labelIds = ['INBOX']).execute()
results = service.users().messages().list(userId='me', q='from:(user2@gmail.com) to:(me@gmail.com)',labelIds = ['INBOX']).execute()