Jump to content

ramoyous

Member
  • Posts

    8
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    Morocco

About ramoyous

Profile Information

  • OS
    Windows 7 x86

ramoyous's Achievements

0

Reputation

  1. Hello dear MHz, Thank you for your reply, and for the work you made, God blessed you, so i will try that and i'll inform you for the result Best regards
  2. Sure, this is expected. The point is that the message box should come up ONLY if the text "alarm" is found in the log, and only as many times as the word "alarm" is found in it. Hence the need to test the script with 3 (three) different logs: containing the word "alarm" only once NOT cotaining the word "alarm" containing the word "alarm" more than once (on different lines)and check if the result is what is expected, i.e. the message box appears once only the message box does NOT appear the message box appears as many times as the word "alarm" is in the logThis is "standard procedure" when developing *any* program/script, you write the code, then test it against "dummy" data, specially crafted to hopefully covering all possibilities, and verify that it works as expected, if it doesn't you go back to the writing and correct/change the code. jaclaz Hello Jaclaz Thank you very much for your reply and your interest, now i can say that i understood you good, and i'll try this in case and after succesful test i'll change the message box to send mails. Best regards
  3. with something *like*: and see which lines in the log trigger the e-mail sending. (use a short log, with only a few lines, once without any "alarm" in it, once with a single instance of "alarm" in it and one with two or more instances). jaclaz When i made this and when running script it print text between () Hallo like title and i am sending an email like text
  4. with something *like*: and see which lines in the log trigger the e-mail sending. (use a short log, with only a few lines, once without any "alarm" in it, once with a single instance of "alarm" in it and one with two or more instances). jaclaz Thank you Jaclaz for your reply i will try it
  5. Hello, I found this script and it works to send mails, the problems are : when we run script it sends a lot of mail without stop and also it can't monitor the word "alarm" in the text file. this is the script ;;##################################; Include;###################################Include<file.au3>;##################################; Variables;##################################$TextFileName = 'C:\Users\X2Z\Desktop\youssef\Adentech\Survey_Monitor_Close_Control_130\Survey Monitor Close Control 1.30\Log.txt'$SmtpServer = "MailServer" ; address for the smtp-server to use - REQUIRED$FromName = "Name" ; name from who the email was sent$FromAddress = "your@Email.Address.com" ; address from where the mail should come$ToAddress = "your@Email.Address.com" ; destination address of the email - REQUIRED$Subject = "Userinfo" ; subject from the email - can be anything you want it to be$Body = "" ; the messagebody from the mail - can be left blank but then you get a blank mail$AttachFiles = "" ; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed$CcAddress = "CCadress1@test.com" ; address for cc - leave blank if not needed$BccAddress = "BCCadress1@test.com" ; address for bcc - leave blank if not needed$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"$Username = "******" ; username for the account used from where the mail gets sent - REQUIRED$Password = "********" ; password for the account used from where the mail gets sent - REQUIRED$IPPort = 25 ; port used for sending the mail$ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS;~ $IPPort=465 ; GMAIL port used for sending the mail;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS;##################################; Script;##################################; First we read the text file$Log = FileRead($TextFileName); Put the contents into an array$pageArray = StringSplit($Log, @CRLF); Now go through the array and look for the word alarm if its found send and emailGlobal $oMyRet[2]Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")For $i = 1 To $pageArray[0]If StringInStr($pageArray[$i], "alarm") Then $Response = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)NextIf @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)EndIf;; The UDFFunc _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "ilyasof90@gmail.com", $s_Password = "talosman2084", $IPPort = 465, $ssl = 1) Local $objEmail = ObjCreate("CDO.Message") $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress Local $i_Error = 0 Local $i_Error_desciption = "" If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then $objEmail.HTMLBody = $as_Body Else $objEmail.Textbody = $as_Body & @CRLF EndIf If $s_AttachFiles <> "" Then Local $S_Files2Attach = StringSplit($s_AttachFiles, ";") For $x = 1 To $S_Files2Attach[0] $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]);~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF) $objEmail.AddAttachment($S_Files2Attach[$x]) Else ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF) SetError(1) Return 0 EndIf Next EndIf $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer If Number($IPPort) = 0 then $IPPort = 25 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort ;Authenticated SMTP If $s_Username <> "" Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password EndIf If $ssl Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True EndIf ;Update settings $objEmail.Configuration.Fields.Update ; Set Email Importance Switch $s_Importance Case "High" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High" Case "Normal" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal" Case "Low" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low" EndSwitch $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail=""EndFunc ;==>_INetSmtpMailCom;;; Com Error HandlerFunc MyErrFunc() $HexNumber = Hex($oMyError.number, 8) $oMyRet[0] = $HexNumber $oMyRet[1] = StringStripWS($oMyError.description, 3) ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF) SetError(1); something to check for when this function returns Return EndFunc ;==>MyErrFuncThanks for your help
  6. I am not sure to understand, the function parses directly the file, i.e. as clearly explained in the given link it is intended as a correspondent to the command line FINDSTR: http://ss64.com/nt/findstr.html An example of use is given here: http://www.autoitscript.com/forum/topic/136407-search-for-string-in-txt-files/ jaclaz Thank you Jaclaz I'm working in that, also i want to ask if we are using the "InetSmtpMail" how can that work without a server Port ? and a password for the sender account !!! Best regards
  7. Hello Jaclaz Thanks for your reply, you can specify exactly where i've put the whole log file ? Best regards
  8. Hello dear friends First i hope you are all fine, my problem is like you see in the topic, i've made a script with AutoIt, in order to monitor a txt file and look fro some words on it, if they exist it will send a mail. the problem is the script can't work and when i start it it run for a few seconds and it stop. Ths script is :. #include <INet.au3>$TextFileName = "C:\Users\X2Z\Desktop\youssef\Adentech\Survey_Monitor_Close_Control_130\Survey Monitor Close Control 1.30\Log.txt"$s_SmtpServer = "smtp.gmail.com"$s_FromName = "Test"$s_FromAddress = "my email"$s_ToAddress = "their email"$s_Subject = "Test test"Dim $as_Body[2]$as_Body[0] = "Alert"$as_Body[1] = "Defaut"; First we read the text file$Log = FileRead($TextFileName); Put the contents into an array$pageArray = StringSplit($Log, @CRLF); Now go through the array and look for the word alarm if its found send and emailFor $i = 1 To $pageArray[0]If StringInStr($pageArray[$i], "alarm") Then $Response = _INetSmtpMail($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, @computername, -1)NextThank you for your help Best regards
×
×
  • Create New...