Topic: автоматическая отправка смс
Добрый день!
Подскажите, возможно, и если да то как, реализовать автоматическую отправку смс при сохранении записи в таблице, с данными из определённых полей этой записи?
My Visual Database → Russian → автоматическая отправка смс
Добрый день!
Подскажите, возможно, и если да то как, реализовать автоматическую отправку смс при сохранении записи в таблице, с данными из определённых полей этой записи?
Добрый день!
Подскажите, возможно, и если да то как, реализовать автоматическую отправку смс при сохранении записи в таблице, с данными из определённых полей этой записи?
скажите падробнее что от куда и куда нужно и если есть проек прикрепите
Ок. Подробнее.
Например: есть таблица "приход" со столбцами "дата", "поставщик", "вес".
Добавляем строку и после нажатия кнопки с функцией "сохранить запись" на телефон уходит смс содержащая "поставщик" и "вес".
Ок. Подробнее.
Например: есть таблица "приход" со столбцами "дата", "поставщик", "вес".
Добавляем строку и после нажатия кнопки с функцией "сохранить запись" на телефон уходит смс содержащая "поставщик" и "вес".
ясно,вот нечто подобное из моего проекта...
надеюсь поможет
//***********************************************************************************************
//передача смс сообщения в зависимости от выбора смс оператора***********************************
//***********************************************************************************************
function Switchsms(smessage, SMS: string): boolean;
var
ini : TInifile;
ClickatellCom :TClickatellCom;
TurboSmsUa :TTurboSmsUa;
s, sResult, sLog, SMSPhone, SMSMessage,r: string;
xml: string;
slParam: TStringList;
begin
ini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sms.ini');
SMSLogin:=ini.ReadString('senderlog','SMSLogin',''); // получаем логин
SMSPassword:=ini.ReadString('senderlog','SMSPassword',''); // получаем пароль
SMSAPI_ID:=ini.ReadString('senderlog','SMSAPI_ID',''); // получаем required
SMSSender:=ini.ReadString('senderlog','SMSSender',''); // получаем подпись отправителя
SMSPhone:=SQLEXecute('SELECT telephonClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue); // получаем номер
SMSMessage:= smessage; // получаем сообщение
try
//если выбран смс оператор epochta
if SMS = 'epochta' then
begin
sResult := SendSMS(SMSLogin, SMSPassword, SMSSender, SMSPhone, SMSMessage); // авторизация и отправка смс
showmessage(sresult);
end;
//если выбран смс оператор turbosms
if SMS = 'turbosms' then
begin
TurboSmsUa := TTurboSmsUa.Create;
sLog := TurboSmsUa.Auth(SMSLogin, SMSPassword); // авторизация
sLog := TurboSmsUa.SendSMS(SMSSender, SMSPhone, SMSMessage); // отправка смс
showmessage(sLog);
end;
//если выбран смс оператор turbosms
if SMS = 'Clickatel' then
begin
ClickatellCom := TClickatellCom.Create;
s := ClickatellCom.SendSMS(SMSLogin, SMSPassword, SMSAPI_ID, SMSPhone, SMSMessage);// авторизация и отправка смс
showmessage(s);
end;
finally
ini.Free;
ClickatellCom.Destroy;
TurboSmsUa.Destroy;
end;
end;
//***********************************************************************************************
//выбор смс сообщения в соотвествии с настройками************************************************
//***********************************************************************************************
function smstr(str: string): string;
var
ini,langIni,inir:TiniFile;
s,t,strshow,sS,sDl,sNM,sAM:string;
sFirstName:string = SQLEXecute('SELECT firstNameClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sTwoName:string = SQLEXecute('SELECT twoNameClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sLastName:string = SQLEXecute('SELECT lastNameClient FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sModel:string = SQLEXecute('SELECT model FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sSN:string = SQLEXecute('SELECT serialNamber FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
sTO:string = SQLEXecute('SELECT nameTypeOfEquipment FROM TypeOfEquipment LEFT OUTER JOIN servise ON TypeOfEquipment.id=servise.id_TypeOfEquipment WHERE servise.id=' +frmServiceCen.tgList.sqlValue);
begin
ini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sms.ini');
inir :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sov.ini');
strshow:=inir.ReadString('lang','directlang', '');
langIni:=TIniFile.Create(ExtractFilePath (ParamStr (0))+ strshow);
sS:= SQLExecute('SELECT IFNULL(SUM(sumInPrice.inPrice),0) FROM sumInPrice LEFT OUTER JOIN servise ON servise.id=sumInPrice.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue);
sDl:= IntToStr(SQLExecute('SELECT IFNULL(SUM(listWorkOff.priceWorkOff * listWorkOff.klVoWorkOff),0)-"'+sS+'" FROM listWorkOff LEFT OUTER JOIN servise ON servise.id=listWorkOff.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue));
sAM:=inir.ReadString('othersetting','AdressMas','');
sNM:=inir.ReadString('othersetting','NameMas','');
try
//если нажата кнопка отправки сообщения в форме frmServiceCen
if (str='frmServiceCen') then begin
//загрузить статус оборудования
t:=SQLEXecute('SELECT id_status FROM servise WHERE id=' +frmServiceCen.tgList.sqlValue);
//если статус оборудования * и сообщение включно то вернуть в результат текст сообщения %0:s
if (t='1') then begin
if (ini.ReadString('smstr','et','')='1') then result:= Format (langIni.ReadString('smstr','et',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sNM,sAM,sNM,sTO] )else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='2') then begin
if (ini.ReadString('smstr','etd','')='1') then result:=Format (langIni.ReadString('smstr','etd',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='3') then begin
if (ini.ReadString('smstr','dr','')='1') then result:=Format (langIni.ReadString('smstr','dr',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='4') then begin
if (ini.ReadString('smstr','epae','')='1') then result:=Format (langIni.ReadString('smstr','epae',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='5') then begin
if (ini.ReadString('smstr','eur','')='1') then result:=Format (langIni.ReadString('smstr','eur',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='6') then begin
if(ini.ReadString('smstr','eaatic','')='1') then result:=Format (langIni.ReadString('smstr','eaatic',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] )else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
end;
//если нажата кнопка отправки сообщения в форме frmMasterWork
if (str='frmMasterWork') then begin
//загрузить статус оборудования
t:=SQLEXecute('SELECT id_status FROM servise WHERE id=' +IntToStr(frmMasterWork.tgListServise.dbItemID));
//если статус оборудования * и сообщение включно то вернуть в результат текст сообщения
if (t='1') then begin
if (ini.ReadString('smstr','et','')='1') then result:=Format (langIni.ReadString('smstr','et',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='2') then begin
if (ini.ReadString('smstr','etd','')='1') then result:=Format (langIni.ReadString('smstr','etd',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='3') then begin
if (ini.ReadString('smstr','dr','')='1') then result:=Format (langIni.ReadString('smstr','dr',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='4') then begin
if (ini.ReadString('smstr','epae','')='1') then result:=Format (langIni.ReadString('smstr','epae',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='5') then begin
if (ini.ReadString('smstr','eur','')='1') then result:=Format (langIni.ReadString('smstr','eur',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] ) else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
if (t='6') then begin
if(ini.ReadString('smstr','eaatic','')='1') then result:=Format (langIni.ReadString('smstr','eaatic',''),[sFirstName,sTwoName,sLastName,sModel,sSN,sDl,sAM,sNM,sTO] )else
MessageBox(mess31, mess32, MB_OK+MB_ICONINFORMATION);
end;
end;
finally
end;
ini.free;
inir.free;
LangIni.free;
end;
//***********************************************************************************************
//кнопка передачи смс сообщения******************************************************************
//***********************************************************************************************
procedure frmServiceCen_bsmsout_OnClick (Sender: TObject; var Cancel: boolean);
var
smsini:TInifile;
smsmessage: string;
begin
smsini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\sms.ini');
//если смс оператор выбран
if smsini.ReadString('sender', 'sendersms', '') <> '' then begin
//вызвать функцию smstr и получить текст смс сообщения
smsmessage:=smstr('frmServiceCen');
// если есть текст в смс сообщении
showmessage(smsmessage);
if smsmessage<>'' then begin
//передать в функцию Switchsms текст смс и имя оператора
if smsini.ReadString('sender', 'sendersms', '') = 'epochta' then Switchsms (smsmessage,'epochta') else
if smsini.ReadString('sender', 'sendersms', '') = 'turbosms' then Switchsms (smsmessage,'turbosms') else
if smsini.ReadString('sender', 'sendersms', '') = 'Clickatel' then Switchsms (smsmessage,'Clickatel');
end;
//если смс оператор не выбран
end else MessageBox(mess33, mess32, MB_OK+MB_ICONINFORMATION);
end;
спасибо!
сложновато для меня конечно... но попробую разобраться)
Можно отправлять e-mail, а на телефоне настроить уведомление в браузере или почтовике. Ещё, как вариант - телеграмм бот. Вроде в 21-м веке живём, а СМС-провайдеры все равно звереют с ценниками на СМС...
ааа... спасибо! это наверное и правда для меня приемлемей будет! не знаю почему на смс зациклился)
порою форум сейчас.
если есть пример для моего случая буду благодарен за наводку!)
спасибо!!!
Пример
// https://www.clickatell.com/register/
// Select: Developers' Central
// Type Api: HTTP
const
SMSLogin = ''; // required
SMSPassword = ''; // required
SMSAPI_ID = ''; // required
SMSSender = ''; // optional https://www.clickatell.com/product-help/developers-central/sender-id-guide/
procedure frmAbonent_bSave_OnAfterClick (Sender: TObject);
var
ClickatellCom :TClickatellCom;
sMessage: string;
begin
ClickatellCom := TClickatellCom.Create;
sMessage := '';
sMessage := 'Firstname: ' + frmAbonent.edFirstName.Text + #13#10+
'Lastname: ' + frmAbonent.edLastName.Text;
if sMessage <> '' then
begin
s := ClickatellCom.SendSMS(SMSLogin, SMSPassword, SMSAPI_ID, sPhone, sMessage);
end;
ClickatellCom.Destroy;
end;
спасибо!!!
С мылом попроще. Вот пример: http://myvisualdatabase.com/forum/viewt … 516#p31516
Как настроить уведомлялку на телефоне - вопрос гугления (у меня хром стреляет из пушки в фоновом режиме при получении письма на Яндекс)
встроил себе. всё отлично работает! еще раз спасибо!!!
My Visual Database → Russian → автоматическая отправка смс
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi