- Справочник
- Microsoft Exchange
Работа с 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 |
| port | 905 | type: 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 дата и время окончания события |
| "admin@mycompany.ru" | type: string адрес электронной почты, к которому привязано событие | |
| Callback | function(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 (место проведения) |
admin@mycompany.ru | type: 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 поисковая строка (часть имени или электронной почты) |
| Callback | function(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});
| на входе | значение | описание |
|---|---|---|
| "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 Тема встречи |
| Callback | function(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 ключ элемента |
| Callback | function(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});
| на входе | значение | описание |
|---|---|---|
| "admin@mycompany.ru" | type: type адрес электронной почты получателя: string | |
| Subject | "Subject" | type: string Тема письма |
| Body | "Message" | type: string Текст письма |
| Callback | function(SendingFeedback) | type: function функция, которая возвращает ответ от сервера |
| на выходе | ||
|---|---|---|
| MessageStatus | Sent: true | type: 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