MSL: скриптова подія OnPrivateMessage
Подія, що виникає в момент прийому сервером приватного повідомлення від одного користувача іншому. При надсиланні приватного повідомлення за допомогою функції mSendPrivateMessage подія не відбувається, щоб уникнути зациклювання.
Шаблон події
function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
begin
// your own code
result := true;
end;
begin
end.
Замість коментаря може бути будь-який ваш код.
Опис параметрів
Параметр |
Тип |
Значення |
iCID |
integer |
Connection ID клієнта, унікальний сеансовий ідентифікатор в онлайн структурі мережевих підключень до сервера; |
iUIN |
integer |
унікальний ідентифікатор відправника повідомлення (число >=0); |
iUINTo |
integer |
унікальний ідентифікатор отримувача повідомлення (число >=0); |
iMsgType |
integer |
|
sMsg |
string |
текст повідомлення. |
Значення, що повертається
Усталено функція повинна повертати true, однак, якщо ви вирішуєте "придушити" приватне повідомлення, можна повернути false, і тоді відправлене повідомлення буде знищене і не відобразиться ні відправник, ні одержувач.
Приклад
const
sHost = 'mail.yourmailserver.com';
sLogin = '[email protected]';
sPassword = 'yoursecretpassword';
iPort = 25;
function OnPrivateMessage(iCID, iUIN, iUINTo, iMsgType: integer; sMsg: string): boolean;
var
sEmailTo, sEmailFrom, sTextBody, sNameFrom, sNameTo: string;
begin
result := true;
if not mIsUINOnline(iUINTo) then begin
sEmailTo := mGetUserPrimaryEmail(iUINTo);
sEmailFrom := mGetUserPrimaryEmail(iUIN);
if (length(sEmailTo)>0) and (length(sEmailFrom)>0) then begin
sNameFrom := mGetUserFullNameByPreset(iUIN, 0);
sNameTo := mGetUserFullNameByPreset(iUINTo, 0);
sTextBody := FormatDateTime('[dd.mm.yyyy hh:nn:ss]', Now)+
' '+
sNameFrom+
'> '+
mConvertMsgToPlainText(sMsg, iMsgType);
SendEmail(sHost, iPort, sLogin, sPassword, sEmailFrom, false, sEmailTo,
'Offline MyChat message for ' + sNameTo, sTextBody, 0, '');
end;
end;
end;
begin
end.
Скрипт відстежує, якщо одержувач приватного повідомлення перебуває офлайн (відключений від мережі), то здійснюється надсилання копії повідомлення на email цієї людини. Усі необхідні дані дістаються із бази даних сервера MyChat.
Для коректної роботи скрипту вам потрібно правильно заповнити розділ констант параметрами вашого поштового сервера (host, login, password та port) за аналогією з будь-яким поштовим клієнтом.