Скрипт по отправке оповещений на EMAIL.
Вопрос. Как будет вести себя сервер, если придется отправить письмо десяткам пользователям, не будет ли это гуглом расцениваться как СПАМ?
Код: Выделить всё// ---------------------------------------
// Script created by Сергей Иванов (UIN 2)
// 26.07.2018 16:13:20
// ---------------------------------------
const
sHost = 'smtp.gmail.com';
sLogin = '[email protected]';
sPassword = 'password';
iPort = 587;
bSSL = true; //использовать защищённое SSL/TLS соединение или нет
function OnBroadcastMessage(iCID, iUIN: integer; var sUsersList: string; var dtActualTo: double; var bReadNotify: boolean; iMsgType: integer; sMsg: string): boolean;
var
s, sEmailTo, sEmailFrom, sTextBody, sNameFrom, sNameTo: string;
iUINTo: integer;
dt: double;
begin
result := true;
// получаем список UIN-ов людей, которым адрессовалось оповещение
s:= sUsersList
// и перебираем их всех по одному, если офлайн передаем оповещение на почту
while length(s)>0 do begin
iUINTo := strtoint(GetNextSt(s, ','));
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, 5);
sNameTo := mGetUserFullNameByPreset(iUINTo, 5);
sTextBody := 'Здравствуйте, ' + sNameTo + ', пока вас не было в чате вам пришло оповещение:<br /><br />' +
'<span style="color:green">' +
FormatDateTime('[dd.mm.yyyy hh:nn:ss]', Now) +
'</span>' +
' '+
'<span style="color:blue"><b>' +
sNameFrom +
'</b></span>'+
' > '+
ReplaceString(mConvertMsgToPlainText(sMsg, iMsgType), CRLF, '<br />', true, false);
SendEmail(sHost, iPort, sLogin, sPassword, sEmailFrom, bSSL, sEmailTo,
'Оповещение для ' + sNameTo + ' от MyChat', sTextBody, 1, '');
end;
end;
end;
end;
begin
end.