Я хочу посчитать последние 7 дней по электронной почте, имеющие тему с типами ошибок, а также имя сервера. Я новичок в Python coding. Может кто-нибудь помочь с этим?
Например: - У меня есть письма в папке «Входящие», как показано в строке темы:
- Проверка на отсутствие резервных копий на CP-TEST-DB2
- Проверка тупика на G-PROD-AUDB
- В журнале ошибок SQL имеются ошибки в LF-PTT-DW1
- Проверить диск пространство на CP-TEST-DB1
Итак, я хочу получать письма с темой строки «Проверка на наличие отсутствующих резервных копий» для каждого сервера (например, CP-TEST-DB2, G-PROD-AUDB) и хочу рассчитывать на это сервер мудрый. Как, например, сколько писем «Проверять наличие недостающих резервных копий» у меня на сервере «CP-TEST-DB2». сколько писем «Проверить наличие недостающих резервных копий» для «G-PROD-AUDB» и т. д. для каждого сервера.
сколько писем «Проверить тупик на» для «CP-TEST-DB2» "сервер. сколько сообщений "Проверить тупик на" у меня есть для "G-PROD-AUDB" и так далее для каждого сервера ... и так далее для типа ошибки также. У меня 8 типов sql сообщений об ошибках для каждого 33 сервера?
import win32com.client
import imp, sys, os, re
import datetime as dt
import time
date_time = dt.datetime.now()
print (date_time)
#list of errors
error = ['There are errors in the SQL Error Log on', 'Check for missing backups on', 'Check drive space on', 'Check memory usage on', 'Check deadlock on ']
#list of server
server = ['TEST-AUDB','TEST-AUDB','EUDB','TEST-EUDB','PROD-AUDB','PROD-EUDB']
#setup range for outlook to search emails (so we don't go through the entire inbox)
lastHourDateTime = dt.datetime.now() - dt.timedelta(days = 7)
#print (lastHourDateTime)
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.Folders.Item(2).Folders['Inbox']
messages = inbox.Items
messages.sort("[ReceivedTime]", True)
lastHourMessages = messages.Restrict("[ReceivedTime] >= '" +lastHourDateTime.strftime('%m/%d/%Y %H:%M %p')+"'")
print ("Current time: "+date_time.strftime('%m/%d/%Y %H:%M %p'))
for msg in lastHourMessages:
subject = msg.Subject
time = msg.ReceivedTime
print (s1)```