Перейти к основному содержимому

Работа с Microsoft Exchange

iRidium server предоставляет возможности для взаимодействия с существующими корпоративными системами, построенными на базе Microsoft Exchange Server — программном продукте для обмена почтовыми сообщениями и совместной работы с календарём и задачам. Можно подключить iRidium server к системе Microsoft Exchange для:

  • получения событий в календаре
  • получение контактов
  • создания встреч
  • удаления элементов

Работа с Microsoft Exchange доступна только через скрипт.

Драйвер поддерживает только Basic Authentication.

Доступна расширенная версия драйвера Microsoft Exchange Web Services

Методы

IR.CreateDevice()

Создание драйвера для работы с сервером Microsoft Exchange

Синтаксис

IR.CreateDevice(IR.DEVICE_EXCHANGE, name, host, port, login, password);

на входезначениеописание
name"ExchangeDriver"type: string
Имя создаваемого драйвера
host"192.168.0.12"type: string
IP адрес сервера Microsoft Exchange
port905type: number
Порт
login"admin"type: string
Логин от учетной записи Microsoft Exchange
password"admin"type: string
Пароль от учетной записи Microsoft Exchange
* Драйвер поддерживает только Basic Authentication.
на выходе
-

Пример

var device = IR.CreateDevice(IR.DEVICE_EXCHANGE, "ExchDriver", "192.168.0.12", 905, "admin", "admin");
IR.Log(device); // [object DevicePrototype]

Примечания

Подсказка

В случае неуспешной попытки подключения к серверу Microsoft Exchange драйвер будет повторять попытки каждые 15 секунд.

.GetCalendar()

Получение событий календаря

Синтаксис

.GetCalendar({FirstDate, LastDate, Email, Callback});

на входезначениеописание
FirstDate"2016-09-16T07:00:00Z"type: string
дата и время начала события
LastDate"2016-11-16T07:00:00Z"type: string
дата и время окончания события
Email"admin@mycompany.ru"type: string
адрес электронной почты, к которому привязано событие
Callbackfunction(eventList, email)type: function
Функция, в которую сервер передаст список событий
на выходе
eventList{ID: "AAMkA",ChangeKey: "DwAAAB",Start: "2016-09-16T07:00:00Z",End: "2016-11-16T07:00:00Z",Subject: "IT Conference",Organizer: "K. Johnson",Location: "London"}type: object
Список событий. Каждое событие имеет поля: ID (идентификатор элемента), ChangeKey (ключ элемента), Start (начало события), End (конец события), Subject (название встречи), Organizer (организатор), Location (место проведения)
emailadmin@mycompany.rutype: string
адрес электронной почты, к которому привязано событие

Пример

function GetFirstEventData(eventList, email)
{
IR.Log("event id: " + eventList.items[0].ID);
IR.Log("event key: " + eventList.items[0].ChangeKey);
IR.Log("event start: " + eventList.items[0].Start);
IR.Log("event end: " + eventList.items[0].End);
IR.Log("event subject: " + eventList.items[0].Subject);
IR.Log("event organizer: " + eventList.items[0].Organizer);
IR.Log("event location: " + eventList.items[0].Location);
}
device.GetCalendar({
FirstDate: "2016-09-16T07:00:00Z",
LastDate: "2016-09-20T07:00:00Z",
Email: "admin@admin.ru",
Callback: GetFirstEventData});

.GetContact()

Получение информации о контакте

Синтаксис

.GetContact({Find, Callback});

на входезначениеописание
Find"admin"type: string
поисковая строка (часть имени или электронной почты)
Callbackfunction(contactList, find)type: function
Функция, в которую сервер передаёт список контактов
на выходе
contactList{<br />Name: "L. Johnson",<br />Company: "Iridium Ltd.",<br />Email: "admin@admin.ru",<br />Fax: "3435111222",<br />BusinessPhone: "3435333222",<br />Phone: "3435222333",<br />MobilePhone: "+79001111111",<br />Department: "R&D",<br />Office: "General str. 1",<br />JobTitle: "Trainer"<br />}type: object
список контактов, которые подходят под поисковую строку. Каждый контакт имеет поля:
Name (имя контакта),
Company (компания),
Email (почтовый адрес контакта),
Fax (Факс контакта),
BusinessPhone (рабочий телефон),
Phone (телефон),
MobilePhone (мобильный телефон),
Department (отдел),
Office (адрес офиса),
JobTitle (Должность)
find"admin"type: string
Поисковая строка

Пример

function GetFirstContactData(contactList, find)
{
IR.Log("Contact Name: " + contactList.Items[0].Name);
IR.Log("Contact Company: " + contactList.Items[0].Company);
IR.Log("Contact Email: " + contactList.Items[0].Email);
IR.Log("Contact Fax: " + contactList.Items[0].Fax);
IR.Log("Contact BusinessPhone: " + contactList.Items[0].BusinessPhone);
IR.Log("Contact Phone: " + contactList.Items[0].Phone);
IR.Log("Contact MobilePhone: " + contactList.Items[0].MobilePhone);
IR.Log("Contact Department: " + contactList.Items[0].Department);
IR.Log("Contact Office: " + contactList.Items[0].Office);
IR.Log("Contact JobTitle: " + contactList.Items[0].JobTitle);
}
device.GetContact({Find: "admin", Callback: GetFirstContactData});

.CreateAppointment()

Создание встречи

Синтаксис

.CreateAppointment({Email, FirstDate, LastDate, Room, Subject, Callback});

на входезначениеописание
Email"admin@admin.ru"type: string
адрес электронной почты, к которому привязано событие
FirstDate"2016-09-16T07:00:00Z"type: string
дата и время начала события
LastDate"2016-09-20T07:00:00Z"type: string
дата и время окончания события
Room"526"type: string
Комната, в которой будет проходить встреча
Subject"Scrum meeting"type: string
Тема встречи
Callbackfunction(appointment)type: function
функция, которая возвращает ответ от сервера
на выходе
appointment{<br />ID: "AAMkA",<br />ChangeKey: "DwAAAB"<br />}type: object
объект, в котором хранится информация о созданной встрече:
ID (идентификатор встречи),
ChangeKey (ключ созданной встречи),
Error (текст ошибки, если она есть)

Пример

function FeedbackInfo(appointment)
{
IR.Log("ID: " + appointment.ID);
IR.Log("ChangeKey: " + appointment.ChangeKey);
IR.Log("Error: " + appointment.Error);
}
device.CreateAppointment({
Email: "admin@admin.ru",
FirstDate: "2016-09-16T07:00:00Z",
LastDate: "2016-09-20T07:00:00Z",
Room: "520",
Subject: "Scrum meeting",
Callback: FeedbackInfo});

.DeleteItem()

Удаление элемента

Синтаксис

.DeleteItem({ID, ChangeKey, Callback});

на входезначениеописание
ID"AAMkA"type: string
идентификатор элемента
ChangeKey"DwAAAB"type: string
ключ элемента
Callbackfunction(itemStatus)type: function
функция, которая вернёт ответ от сервера
на выходе
itemStatus {<br />Deleted: true<br />}<br />или<br />{<br />Error: "ResponseCode: ErrorNameResolutionNoResults, MessageText: No results were found."<br />}type: object
объект, в котором хранится информация об удалённом элементе:
Deleted (флаг удаления),
Error (текст ошибки, если она есть)

Пример

function DeletingFeedback(itemStatus){
if (itemStatus.Deleted)
{
IR.Log("Deleted!");
}
else
{
IR.Log("Error: " + itemStatus.Error);
}
}
device.DeleteItem({ID: "AAMkA", ChangeKey: "DwAAAB", Callback: DeletingFeedback});

.SendMail()

Отправка письма

Синтаксис

.SendMail ({Email, Subject, Body, Callback});

на входезначениеописание
Email"admin@mycompany.ru"type: type
адрес электронной почты получателя: string
Subject"Subject"type: string
Тема письма
Body"Message"type: string
Текст письма
Callbackfunction(SendingFeedback)type: function
функция, которая возвращает ответ от сервера
на выходе
MessageStatusSent: truetype: object
Объект, в котором хранится информация об отправленном письме:Sent (флаг отправления)

Пример

function SendingFeedback (MessageStatus)
{
IR.Log("Sent: " + MessageStatus.Sent);
}
device.SendMail({
Email: 'admin@admin.ru',
Subject: 'Subject',
Body: 'Message',
Callback: SendingFeedback });

Параметры драйвера

SSL

|SSL|1|number|Метод шифрования сообщений между iRidium server и Microsoft Exchange Server:
0 - без шифрования (по умолчанию),
1 - TLS v1.2 (рекомендуется),
2 - SSL 2.3,
3 - SSL 3.0. device.SetParameters({"SSL": 1}); // TLS encryption