Как я могу добавить электронное письмо к существующей записи календаря, используя exchangelib? - PullRequest
0 голосов
/ 29 апреля 2020

У меня уже запланировано существующее событие календаря.

Я пытаюсь добавить несколько электронных писем к этому существующему событию, но когда я запускаю эту функцию, оно добавляет новое событие.

Мне нужно иметь возможность: найти событие, добавить указанный адрес электронной почты к событию, добавить письмо, чтобы получить приглашение.

(я новичок в python, поэтому попробуйте не судить строго)

def updateInvite(pEmail,pSubj,iY, iM, iD, iHH, iMM):
    pytz_tz = pytz.timezone('America/New_York')
    tz = EWSTimeZone.localzone()    

    items = account.calendar.view(    
        start=tz.localize(EWSDateTime(iY, iM, iD, iHH, iMM)),        
        end=tz.localize(EWSDateTime(iY, iM, iD, iHH + 2, iMM)),        
        )`   
    for item in items:    
        sEventSubj = item.subject        
        item.save(update_fields=['required_attendees'])     

Вызывается с

pEmail = 'name.last@company.com'
sSubj  = 'Invite Test Meeting with Teams link'
iY = 2020
iD = 29
iM = 4
iHH = 16
iMM = 30
updateInvite(pEmail, sSubj, iY, iM, iD, iHH, iMM)

1 Ответ

0 голосов
/ 03 мая 2020

Для этого используйте вложение предмета. Найдите сообщение, которое вы хотите прикрепить к элементу календаря, и создайте для него вложение элемента:

from exchangelib import ItemAttachment

# Create some filter to get the emails you want to attach
messages = account.inbox.all()[:5]
# Create a filter go get your calendar item
item = account.calendar.get(subject='Hello Python')
for message in messages:
    # Create the attachment and give it a name
    attachment = ItemAttachment(name='msg %s' % msg.id[:8], item=message)
    item.attach(attachment)
...