Как получить встречающиеся приглашения от Office365, так, чтобы они могли быть проанализированы и добавлены к календарю?

Единственная команда, что я знаю, что это делает то, что Вы хотите, является resolveip:

http://linux.die.net/man/1/resolveip

Однако это только идет с mysql-сервером, который не может быть идеальным для установки везде.

10
31.03.2014, 06:17
3 ответа

Ссылка, которую предоставил SEoF, была отличным предложением. Заметка в блоге, на мой взгляд, неполная, но она помогла мне встать на правильный путь. Я еще немного покопался и нашел полный список шагов для того, чтобы заставить Office 365 отправлять мне приглашения на встречи в формате iCalendar (.ics).

Обратите внимание, что я не являюсь администратором, и мне не нужно было обращаться к кому-либо, чтобы дать мне какие-либо привилегии. Единственная оговорка заключается в том, что вам нужен доступ к компьютеру с Windows. Как только вы измените настройки через Windows, вы сможете вернуться к использованию любой ОС, которую вы использовали до этого. Я выполнил следующие действия самостоятельно, как обычный пользователь, используя Windows 7:

  1. Скачайте и установите Microsoft .NET Framework 4.5 с http://www.microsoft.com/en-us/download/details.aspx?id=30653.
  2. Скачайте и установите Windows Management Framework 4.0 (Windows6.1-KB2819745-x64-MultiPkg.msu) с http://www.microsoft.com/en-us/download/details.aspx?id=40855.
  3. Запустите PowerShell от имени администратора.
  4. Установите...ExecutionPolicy -ExecutionPolicy RemoteSigned
  5. $UserCredential = Get-Credential
    • Введите свой адрес электронной почты и пароль.
  6. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365. com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
  7. $ImportResults = Import-PSSession $Session
  8. Get-CASMailbox -identity YOUR@EMAIL.ADDRESS | Format-List
  9. Set-CASMailbox -identity YOUR@EMAIL.ADDRESS -PopUseProtocolDefaults: $FALSE -ImapUseProtocolDefaults:$FALSE -PopForceICalForCalendarRetrievalOption:$TRUE -ImapForceICalForCalendarRetrievalOption:$TRUE
  10. Remove-PSSession $Session
  11. Set-ExecutionPolicy -ExecutionPolicy Restricted

Теперь моя мутта на Linux получает приглашения на встречи в формате iCalendar (. ics) формате.

1
27.01.2020, 20:02

Вы можете настроить Office 365/Outlook так, чтобы он отправлял приглашения в формате iCalendar через веб-интерфейс.

  1. Войдите в учетную запись Office 365
  2. Откройте Mail App (Outlook)
  3. Нажмите на значок шестеренки в правом верхнем углу (настройки)
  4. В поле поиска введите "imap"
  5. Выберите "Pop и IMAP"
  6. Внизу выберите "Отправлять приглашения на мероприятия в формате iCalendar" для POP и/или IMAP.
  7. Нажмите "Сохранить"

Теперь вы должны получать все приглашения в формате iCalendar.

3
27.01.2020, 20:02

Не совсем то, что запрашивал OP, но если сторонняя логика разрешена, то проверьте фантастический exchangengelib (python). Быстрый пример py3 получения событий на следующие 3 месяца (обратите внимание, что повторяющиеся элементы были расширены):

import arrow  # not required, but highly recommended lib for time processing
import base64
from tzlocal import get_localzone
from subprocess import call

from exchangelib import DELEGATE, Account, Credentials, EWSDateTime

CREDENTIALS = Credentials(username='mymail@company.com', password='topsecret')
ACCOUNT = Account(primary_smtp_address='mymail@company.com', credentials=CREDENTIALS,
                autodiscover=True, access_type=DELEGATE)

def sanitize(p):
    '''some .ical files didn't have proper end:vcalendar closure'''
    end = 'END:VCALENDAR\n'
    s = base64.b64decode(p).decode().replace("\r\n", "\n")
    if not s.endswith(end):
        s += end

    return s

tz = get_localzone()
now = arrow.now()
upper_limit = now.replace(months=+3)
items = ACCOUNT.calendar.view(
    start=tz.localize(EWSDateTime(now.year, now.month, now.day)),
    end=tz.localize(EWSDateTime(upper_limit.year, upper_limit.month, upper_limit.day)),
)

cals = []  # list of .ical files' contents
for item in items:
    cals.append(sanitize(item.mime_content))
0
27.01.2020, 20:02

Теги

Похожие вопросы