
// Скрипт автозапуска ammyyy по запросу

const
    InvoiceSubj = 'ammyy';
    //InvoiceSenderAddress = 'borzov@solr.ru'; это не нужно, ибо привязка уже установлена в адресной книге
    AmmyyCommand = 'aa_v3.2.exe';
    CheckMPMessages = false;
    SendAnswer = true;
    SendAnswerOnError = true;

var
    Result :integer;
      //возврат - result 0,1,... 0 - ничего не делать, предполагается. что скрипт все сам сделал.
      //1 - стандартно, скрипт или ничего не сказал или не отработал.


    VARID :int64; // предопределенная переменная. ID письма.
    VARExport_dir :string; // каталог экспорта
    VARUSE_Date_As_Subdir :string;
    VARADDRESSBOOK_ID :int64;
    VARADDRESSBOOK_NAME :string;
    VARADDRESSBOOK_ENABLED :boolean;
    VARADDRESSBOOK_MAIL :string;
    VARADDRESSBOOK_EXTERNAL_CODES :string;
    VARADDRESSBOOK_AUTOMAIL_SCRIPT :string;



var
    execresult :integer;
    currcommand :string;

var
  MailMessage :TMailMessage;
  Script :TMyFastScript;
begin

  MailMessage := TMailMessage.create1(selfscript);
  try
    MailMessage.ID := asfloat(VARID);

    //createhint('Инициализация Эмми:'+#13+
    //           'ID ='+floattostr(mailmessage.id)+#13+
    //           'Message_ID ='+mailmessage.messageid+#13+
     //          'Subject ='+mailmessage.subject+#13+
     //          'From ='+mailmessage.senderaddress);

    if (MailMessage.MessageID>'') // существует
       and (not CheckMPMessages or mailMessage.isMPMessage)
       and (mailMessage.subject = InvoiceSubj)
       //and (MailMessage.SenderAddress=InvoiceSenderAddress)
       //and (MailMessage.Body<>'')
    then begin

       try
         currcommand := ammyycommand;
         if extractfilepath(currcommand)=''
         then currcommand := extractfilepath(application.exename)+currcommand;

         //createhint(currcommand);

         execresult := FileExecute(currcommand,esnormal);

         if SendAnswer
         then
         with TMailMessage.create1(selfscript) do
         try
           ID := 0;
           Recipients := mailmessage.senderaddress;
           subject := 'Запрос отработан, результат = '+inttostr(execresult);

           Save;
         finally
           free
         end;

       except
          if SendAnswerOnError
          then
          with TMailMessage.create1(selfscript) do
          try
            ID := 0;
            Recipients := mailmessage.senderaddress;
            subject := 'Ошибка обработке запроса';
            body := exceptionMessage;
            Save;
          finally
             free
          end;
          Createhinte(ExceptionMessage,'Ошибка при исполнении скрипта');
       end;

       mailMessage.Isprocessed := true;
       Result := 0;
    end;


  finally
    MailMessage.free
  end;

end.
