Единственная команда, что я знаю, что это делает то, что Вы хотите, является resolveip:
http://linux.die.net/man/1/resolveip
Однако это только идет с mysql-сервером, который не может быть идеальным для установки везде.
Ссылка, которую предоставил SEoF, была отличным предложением. Заметка в блоге, на мой взгляд, неполная, но она помогла мне встать на правильный путь. Я еще немного покопался и нашел полный список шагов для того, чтобы заставить Office 365 отправлять мне приглашения на встречи в формате iCalendar (.ics).
Обратите внимание, что я не являюсь администратором, и мне не нужно было обращаться к кому-либо, чтобы дать мне какие-либо привилегии. Единственная оговорка заключается в том, что вам нужен доступ к компьютеру с Windows. Как только вы измените настройки через Windows, вы сможете вернуться к использованию любой ОС, которую вы использовали до этого. Я выполнил следующие действия самостоятельно, как обычный пользователь, используя Windows 7:
Теперь моя мутта на Linux получает приглашения на встречи в формате iCalendar (. ics) формате.
Вы можете настроить Office 365/Outlook так, чтобы он отправлял приглашения в формате iCalendar через веб-интерфейс.
Теперь вы должны получать все приглашения в формате iCalendar.
Не совсем то, что запрашивал 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))