2017-01-27 5 views
0

Я новичок в Python, и я разработал скрипт Python для сообщений ping в приложении под названием Spark. Пока что код в порядке, и мне удалось создать тему электронной почты. Но я также хочу добавить дату, когда я получил письмо вместе с темой. Вот сценарий: -Как извлечь дату получения писем в Outlook с помощью скриптов Python?

import win32com.client 
import requests 
import time 
import datetime 
def postMessageInSpark(mytoken, roomId, text): 
    header = {'Authorization':mytoken, 'Content-Type':'application/json'} 
    payload = {'roomId':roomId,'text':text} 
    result = requests.post(url='https://api.ciscospark.com/v1/messages',headers=header,json=payload) 
    print(str(result.status_code)) 
    return str(result.status_code) 
token ="Bearer "+'OGU3MDcyMmYtZDUzYS00OWU4LTk0ZTItYTJlNTc1OTUzODA5ZmQzYmRkNjMtYzcy' 
teamId='Y2lzY29zcGFyazovL3VzL1JPT00vNGZjYWI5NzAtZGNhMS0xMWU2LWE3ODItYTM1OTY2OWNkMzcx' 
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
folders = inbox.Folders 
for folder in folders: 
if (folder.Name == 'TES FOLDER'): 
    items = folder.Items 
    for item in items: 
    subject=item.Subject 
    message=item.GetLast() 
    date=message.senton.date() 
    for idx in reversed(items): 
    fail_msg=subject+date 
    postMessageInSpark(token,teamId,fail_msg) 
    break 

Я использовал date=message.senton.date(), но он не возвращает мне дату писем. Пожалуйста, помогите мне.

+0

Вы можете исправить отступы? Подсказка: скопировать-вставить из вашего кода, выбрать код, который вы только что вставляли, и нажать ctrl-k – hansaplast

+0

, что это прекрасный @hansaplast? –

+0

Да, намного лучше – hansaplast

ответ

0

MailItem объект не имеет способа, называемого GetLast. Только Items объект. Вы имели в виду использовать item.SentOn?

+0

Да, это было свойство item.SentOn. Я немного изменил свой код и теперь его работа. –

0

Привет Я нашел решение моей проблемы: -

import win32com.client 
import requests 
import time 
import datetime 
def postMessageInSpark(mytoken, roomId, text): 
    header = {'Authorization':mytoken, 'Content-Type':'application/json'} 
    payload = {'roomId':roomId,'text':text} 
    result = requests.post(url='https://api.ciscospark.com/v1/messages',headers=header,json=payload) 
    print(str(result.status_code)) 
    return str(result.status_code) 
token ="Bearer "+'OGU3MDcyMmYtZDUzYS00OWU4LTk0ZTItYTJlNTc1OTUzODA5ZmQzYmRkNjMtYzcy' 
teamId='Y2lzY29zcGFyazovL3VzL1JPT00vNGZjYWI5NzAtZGNhMS0xMWU2LWE3ODItYTM1OTY2OWNkMzcx' 
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
folders = inbox.Folders 
for folder in folders: 
if (folder.Name == 'TES FOLDER'): 
    items = folder.Items 
    for item in reversed(items): 
    subject=item.Subject 
    date = item.SentOn.strftime("%d-%m-%y") 
    for idx in reversed(items): 
    fail_msg=subject+" at "+date 
    postMessageInSpark(token,teamId,fail_msg) 
    idx.Move(inbox.Folders("TEST")) 
    break 

На самом деле message=item.GetLast() и date=message.senton.date() лишь дает мне выход последней электронной почты, полученной. Но после того, как я использовал date = item.SentOn.strftime("%d-%m-%y"), он дал мне результат, который я хотел.

 Смежные вопросы

  • Нет связанных вопросов^_^