Как сохранить извлеченные идентификаторы электронной почты в листе Excel, используя Python, что тоже подряд? - PullRequest
0 голосов
/ 24 января 2020
outlook = Dispatch("Outlook.Application")
mapi = outlook.GetNamespace("MAPI")

your_folder = mapi.Folders['email@outlook.com'].Folders['Blah']

blah_inbox = your_folder.Items

f = open("email_txt.csv", "w")

for message in blah_inbox:
    if message.Class == 43:
        if message.SenderEmailType == 'EX':
            print(message.Sender.GetExchangeUser().PrimarySmtpAddress)

            f.write(message.Sender.GetExchangeUser().PrimarySmtpAddress)

        else:
            print(message.SenderEmailAddress)

Я открыл новый f ie и записал его в csv, но получаю следующий результат.

user1@outlook.comuser2@outlook.comuser3@outook.com.....

Однако мне нужен результат, подобный приведенному ниже

user1@outlook.com
user2@outlook.com
user3@outlook.com

1 Ответ

0 голосов
/ 26 января 2020

Простое решение заключается в следующем

f = open("email_txt.csv", "w")

for message in blah_inbox:
    if message.Class == 43:
        if message.SenderEmailType == 'EX':
            print(message.Sender.GetExchangeUser().PrimarySmtpAddress)

            f.write(message.Sender.GetExchangeUser().PrimarySmtpAddress + '\n')

        else:
            print(message.SenderEmailAddress)

Я добавил «\ n» в конце команды записи

В качестве альтернативы, поскольку все мое намерение состояло в том, чтобы сохранить в CSV с какими-то заголовками. Вот что сработало для меня. Это весь код.

Todays_Mail = dt.datetime.now() - dt.timedelta(hours=24)
Todays_Mail = Todays_Mail.strftime('%m/%d/%Y %H:%M %p')
# Connect to Outlook inbox
outlook = Dispatch("Outlook.Application")
mapi = outlook.GetNamespace("MAPI")

your_folder = mapi.Folders['email'].Folders['Blah']

blah_inbox = your_folder.Items

blah_inbox = blah_inbox.Restrict("[ReceivedTime] >= '" + Todays_Mail + "'")

f = open("email.csv", "w")
f.write('Emails,Index\n')

index = 0
for message in blah_inbox:
    if message.Class == 43:
        if message.SenderEmailType == 'EX':
            print(message.Sender.GetExchangeUser().PrimarySmtpAddress)
            f.write(message.Sender.GetExchangeUser().PrimarySmtpAddress + ',' + str(index) + '\n')
            index = index + 1


        else:
            print(message.SenderEmailAddress)
f.close()

Выше приведено два столбца, один с заголовком Email, а второй столбец с индексом Index.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...